/* Tokens de design e estilos partilhados */
/* ║ __  __ _ _         ____        _       ║ */
/* ║|  \/  (_) | __ ___| __ )  ___ | |_ ___ ║ */
/* ║| |\/| | | |/ /|_  /  _ \ / _ \| __/ __|║ */
/* ║| |  | | |   <  / /| |_) | (_) | |_\__ \║ */
/* ║|_|  |_|_|_|\_\/___|____/ \___/ \__|___/║ */
/* ╚════════════════════════════════════════╝ */
/* ╔════════════════════════════════════════╗ */
/* ║    This website was made by MikzBots   ║ */
/* ║         https://mikzbots.xyz/          ║ */
/* ╚════════════════════════════════════════╝ */

@font-face {
	font-family: 'Gotham';
	src: url('../fonts/GothamBook.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Gotham';
	src: url('../fonts/GothamMedium.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Gotham';
	src: url('../fonts/GothamBold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

:root {
	--font-body: 'Gotham', 'DM Sans', sans-serif;
	--font-heading: 'Gotham', 'Barlow Condensed', sans-serif;
	--font-display: 'Gotham', 'Bebas Neue', sans-serif;
	--line-w: 1.5px;
}

@media (max-resolution: 1.49dppx) {
	:root {
		--line-w: 2px;
	}
}

.login-submit-arrow {
	display: none;
}

body.theme-light {
	--bg: #ffffff;
	--bg-1: #ffffff;
	--bg-2: #ececec;
	--bg-3: #e2e2e2;
	--bg-4: #d6d6d6;
	--bg-5: #c9c9c9;

	--text: #111111;
	--text-2: #6b6b6b;
	--text-3: #b0b0b0;

	--line: rgba(0, 0, 0, 0.14);
	--line-2: rgba(0, 0, 0, 0.07);

	--accent: #F2C118;
	--accent-h: #F6CF45;
	--accent-dim: rgba(242, 193, 24, 0.09);
	--accent-glow: rgba(242, 193, 24, 0.18);
	--border-a: rgba(242, 193, 24, 0.24);

	--surface: #ffffff;
	--accent-text: var(--text);
	--on-accent: #111111;
	--field: #ececec;
	--field-ring: rgba(0, 0, 0, 0.07);

	--black: var(--bg);
	--black2: var(--bg-2);
	--black3: var(--bg-3);
	--black4: var(--bg-4);
	--white: var(--text);
	--grey: var(--text-2);
	--grey2: var(--text-3);
	--border: var(--line);
}

body.theme-dark {
	--bg: #121212;
	--bg-1: #161616;
	--bg-2: #1e1e1e;
	--bg-3: #272727;
	--bg-4: #303030;
	--bg-5: #3a3a3a;

	--text: #f2f0ec;
	--text-2: #a9a69f;
	--text-3: #6e6c66;

	--line: rgba(255, 255, 255, 0.14);
	--line-2: rgba(255, 255, 255, 0.08);

	--accent: #F2C118;
	--accent-h: #F6CF45;
	--accent-dim: rgba(242, 193, 24, 0.10);
	--accent-glow: rgba(242, 193, 24, 0.20);
	--border-a: rgba(242, 193, 24, 0.26);

	--surface: #1c1c1c;
	--accent-text: #F2C118;
	--on-accent: #111111;
	--field: #2b2b2b;
	--field-ring: rgba(255, 255, 255, 0.10);

	--black: var(--bg);
	--black2: var(--bg-2);
	--black3: var(--bg-3);
	--black4: var(--bg-4);
	--white: var(--text);
	--grey: var(--text-2);
	--grey2: var(--text-3);
	--border: var(--line);
}

body:is(.theme-light, .theme-dark) {
	font-family: var(--font-body);
}

body:is(.theme-light, .theme-dark) h1,
body:is(.theme-light, .theme-dark) h2,
body:is(.theme-light, .theme-dark) h3,
body:is(.theme-light, .theme-dark) .hero-title,
body:is(.theme-light, .theme-dark) .section-title,
body:is(.theme-light, .theme-dark) .card-title {
	font-family: var(--font-display);
	font-weight: 700;
	text-transform: uppercase;
}

#sidebar-close-btn {
	display: none;
}

@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) .sidebar {
		width: 100vw !important;
		background: var(--surface);
		box-shadow: none;
		padding: 24px 28px;
	}

	body:is(.theme-light, .theme-dark).nav-open .sidebar {
		top: 0 !important;
		height: 100dvh !important;
		padding-top: calc(80px + env(safe-area-inset-top)) !important;
	}

	body:is(.theme-light, .theme-dark).nav-open #sidebar-close-btn {
		display: block;
		position: fixed;
		top: calc(20px + env(safe-area-inset-top));
		left: max(28px, env(safe-area-inset-left));
		width: 28px;
		height: 28px;
		z-index: 460;
		background: none;
		border: none;
		padding: 0;
		color: var(--accent);
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) .ki-logo-img {
		display: none;
	}

	body:is(.theme-light, .theme-dark).nav-open #mobile-menu-btn {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .nav-items {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 28px;
		margin-top: 24px;
	}

	body:is(.theme-light, .theme-dark) .nav-items .nav-btn,
	body:is(.theme-light, .theme-dark) .nav-items .nav-item {
		justify-content: flex-start !important;
		background: none !important;
		padding: 0 !important;
		height: auto !important;
		white-space: normal;
	}

	body:is(.theme-light, .theme-dark) .nav-items .nav-label,
	body:is(.theme-light, .theme-dark) .nav-items .nav-item {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: 44px !important;
		line-height: 1.0 !important;
		letter-spacing: -0.5px !important;
		text-transform: uppercase !important;
		text-align: left;
		white-space: normal !important;
		overflow: visible !important;
		text-overflow: clip !important;
	}

	body:is(.theme-light, .theme-dark) .nav-items .nav-btn svg {
		display: none;
	}

	body:is(.theme-light, .theme-dark) .nav-items .nav-btn.active .nav-label {
		display: inline-block;
		border-bottom: 4px solid var(--accent);
		padding-bottom: 4px;
		line-height: 0.9;
	}

	body:is(.theme-light, .theme-dark) .nav-items .nav-btn,
	body:is(.theme-light, .theme-dark) .nav-items .nav-item,
	body:is(.theme-light, .theme-dark) .nav-items .nav-btn .nav-label {
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) .sidebar-bottom {
		display: none;
	}

	body:is(.theme-light, .theme-dark) .sidebar::before {
		display: none;
	}

	body:is(.theme-light, .theme-dark).nav-open #mobile-menu-btn {
		background: none;
		border-color: transparent;
	}

	body:is(.theme-light, .theme-dark).nav-open #mobile-menu-btn span:nth-child(1) {
		transform: none;
	}

	body:is(.theme-light, .theme-dark).nav-open #mobile-menu-btn span:nth-child(2) {
		opacity: 1;
	}

	body:is(.theme-light, .theme-dark).nav-open #mobile-menu-btn span:nth-child(3) {
		transform: none;
	}

	body:is(.theme-light, .theme-dark) #mobile-menu-btn {
		background: none;
		border-color: transparent;
	}

	body:is(.theme-light, .theme-dark) #mobile-menu-btn:hover {
		background: none;
		box-shadow: none;
	}

	body:is(.theme-light, .theme-dark) #mobile-menu-btn span:nth-child(2) {
		display: none;
	}

	body:is(.theme-light, .theme-dark) #mobile-menu-btn span {
		width: 30px;
		height: 5px;
		border-radius: 3px;
	}

	body:is(.theme-light, .theme-dark) #mobile-menu-btn {
		width: 44px;
		height: 44px;
		margin-left: -7px;
		align-items: center;
		justify-content: center;
		gap: 7px;
	}
}

body:is(.theme-light, .theme-dark) .hero-eyebrow {
	font-family: var(--font-body);
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--text);
	font-size: 12px;
	text-align: left;
}

body:is(.theme-light, .theme-dark) .hero-eyebrow::before {
	content: "// ";
	color: var(--text);
}

body:is(.theme-light, .theme-dark) .hero-banner p {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 14px;
	line-height: 1.3;
	color: var(--text);
	text-align: left;
	max-width: 320px;
}

body:is(.theme-light, .theme-dark) .hero-banner {
	border-left: none !important;
	border-top: none !important;
	border: none;
	background: transparent;
	padding: 8px 0 32px !important;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	text-align: left;
}

body:is(.theme-light, .theme-dark) .hero-logo-big {
	order: 1;
	margin-top: 24px;
	margin-bottom: 64px;
}

body:is(.theme-light, .theme-dark) .hero-logo-big img {
	height: 96px !important;
}

body.app-ki:is(.theme-light, .theme-dark) .hero-logo-big img {
	height: 144px !important;
}

/* KI: logos da Home e da BIO levam à Home */
.ki-home-link {
	display: inline-flex;
	max-width: 100%;
	border-radius: 6px;
}

.ki-home-link:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 4px;
}

body:is(.theme-light, .theme-dark) .hero-eyebrow {
	order: 2;
}

body:is(.theme-light, .theme-dark) .hero-banner p {
	order: 3;
}

body:is(.theme-light, .theme-dark) .hero-actions {
	display: none;
}

body:is(.theme-light, .theme-dark) .hero-actions .btn-accent,
body:is(.theme-light, .theme-dark) .hero-actions .btn-outline {
	border-radius: var(--r-pill);
	text-transform: uppercase;
	font-family: var(--font-body);
	font-size: 12px;
	letter-spacing: 0.5px;
}

body:is(.theme-light, .theme-dark) .loading-bar {
	background: rgba(0, 0, 0, 0.08);
}

body:is(.theme-light, .theme-dark) #login-overlay {
	background: var(--bg-2);
	align-items: flex-start;
	padding-top: 72px;
}

body:is(.theme-light, .theme-dark) #login-box {
	background: transparent;
	box-shadow: none;
	border: none;
	border-top: none;
	border-radius: 0;
	padding: 0 28px;
	max-width: 420px;
	width: 100%;
}

body:is(.theme-light, .theme-dark) .login-brand {
	margin-bottom: 56px;
	display: flex;
	justify-content: center;
}

@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) .login-brand img {
		width: min(64vw, 260px) !important;
		height: auto !important;
	}
}

body:is(.theme-light, .theme-dark) #login-close {
	color: var(--text-2);
}

body:is(.theme-light, .theme-dark) #login-box-title,
body:is(.theme-light, .theme-dark) #login-box .login-sub {
	display: none;
}

body:is(.theme-light, .theme-dark) .login-field {
	margin-bottom: 14px;
}

body:is(.theme-light, .theme-dark) .login-field input {
	background: var(--surface);
	border: none;
	border-radius: var(--r-pill);
	height: 50px;
	padding: 0 22px;
	font-family: var(--font-body);
	font-size: 16px;
	color: var(--text);
	text-align: center;
}

body:is(.theme-light, .theme-dark) .login-field input::placeholder {
	color: var(--text-3);
	text-transform: uppercase;
	font-size: 12px;
	letter-spacing: 1px;
	text-align: center;
}

body:is(.theme-light, .theme-dark) #login-submit {
	background: none;
	border: none;
	height: auto;
	color: var(--text-3);
	display: flex;
	justify-content: center;
	padding: 18px 0 8px;
	margin-top: 4px;
}

body:is(.theme-light, .theme-dark) #login-submit .login-submit-text {
	display: none;
}

body:is(.theme-light, .theme-dark) #login-submit .login-submit-arrow {
	display: block;
}

body:is(.theme-light, .theme-dark) #login-submit:hover,
body:is(.theme-light, .theme-dark) #login-submit:active {
	background: none !important;
	box-shadow: none !important;
	opacity: 1 !important;
	color: var(--text) !important;
}

body:is(.theme-light, .theme-dark) .login-field input:-webkit-autofill,
body:is(.theme-light, .theme-dark) .login-field input:-webkit-autofill:hover,
body:is(.theme-light, .theme-dark) .login-field input:-webkit-autofill:focus,
body:is(.theme-light, .theme-dark) .am-input:-webkit-autofill,
body:is(.theme-light, .theme-dark) .am-input:-webkit-autofill:hover,
body:is(.theme-light, .theme-dark) .am-input:-webkit-autofill:focus {
	-webkit-box-shadow: 0 0 0 1000px var(--surface) inset !important;
	box-shadow: 0 0 0 1000px var(--surface) inset !important;
	-webkit-text-fill-color: var(--text) !important;
	caret-color: var(--text);
	transition: background-color 9999s ease-in-out 0s;
}

body:is(.theme-light, .theme-dark) #login-error {
	color: var(--red-s);
}

#login-theme-btn {
	position: absolute;
	top: 16px;
	left: 16px;
	background: none;
	border: none;
	color: var(--text-3);
	cursor: pointer;
	line-height: 1;
	padding: 4px;
	opacity: 0.6;
}

#login-theme-btn:hover {
	opacity: 1;
}

#login-theme-btn svg {
	stroke-width: 1.5;
}

#login-theme-btn .theme-icon {
	position: relative;
	display: inline-block;
	width: 14px;
	height: 14px;
}

#login-theme-btn .theme-icon-sun {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
}

#login-theme-btn .theme-icon-moon {
	opacity: 1;
}

body.theme-light #login-theme-btn .theme-icon-moon {
	opacity: 0;
}

body.theme-light #login-theme-btn .theme-icon-sun {
	opacity: 1;
}

body:is(.theme-light, .theme-dark) #login-theme-btn {
	color: var(--text-3);
}

@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #mobile-topbar {
		background: var(--bg);
		border-bottom: none;
		box-shadow: none;
	}

	body:is(.theme-light, .theme-dark) #mobile-topbar {
		height: calc(68px + env(safe-area-inset-top)) !important;
		background: var(--bg) !important;
		box-shadow: none !important;
		border: none !important;
		border-bottom: none !important;
		backdrop-filter: none !important;
		-webkit-backdrop-filter: none !important;
		padding: env(safe-area-inset-top) max(28px, env(safe-area-inset-right)) 0 max(28px, env(safe-area-inset-left)) !important;
		justify-content: flex-start;
	}

	body:is(.theme-light, .theme-dark) #mobile-menu-btn span {
		background: var(--accent);
	}

	body:is(.theme-light, .theme-dark) #mobile-back-btn {
		display: inline-flex;
		align-items: center;
		justify-content: flex-start;
		width: 44px;
		height: 44px;
		margin: -4px 0 4px -2px;
		padding: 0;
		background: none !important;
		border: none !important;
		color: var(--text-2);
	}

	body:is(.theme-light, .theme-dark) #mobile-back-btn[hidden] {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #mobile-back-btn svg {
		width: 22px;
		height: 22px;
		stroke: currentColor !important;
		stroke-width: 2.2;
	}

	body:is(.theme-light, .theme-dark) #mobile-back-label {
		display: none;
	}

	body:is(.theme-light, .theme-dark) #mobile-topbar-title {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .main {
		padding-top: calc(68px + env(safe-area-inset-top)) !important;
	}

	body:is(.theme-light, .theme-dark).nav-open #mobile-topbar {
		background: transparent !important;
		pointer-events: none;
	}

	body:is(.theme-light, .theme-dark).nav-open #mobile-menu-btn {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #mobile-topbar-actions {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark).nav-open #mobile-topbar-actions {
		display: block !important;
		position: fixed;
		top: calc(20px + env(safe-area-inset-top));
		right: max(28px, env(safe-area-inset-right));
		z-index: 460;
		pointer-events: auto;
	}

	body:is(.theme-light, .theme-dark) #mobile-theme-btn {
		background: none;
		border: none;
		color: var(--accent);
		opacity: 1;
		padding: 0;
		width: 28px;
		height: 28px;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	body:is(.theme-light, .theme-dark) #mobile-theme-btn:hover {
		background: none;
	}

	body.theme-light #mobile-theme-btn .theme-icon {
		position: static;
		transform: none;
		width: 26px;
		height: 26px;
		opacity: 1;
	}

	body.theme-light #mobile-theme-btn .theme-icon-sun {
		display: none;
	}

	body.theme-light #mobile-theme-btn .theme-icon-moon {
		display: block;
	}

	#menu-gear-btn {
		display: none;
	}

	body:is(.theme-light, .theme-dark).nav-open #menu-gear-btn {
		display: flex;
		align-items: center;
		justify-content: center;
		position: fixed;
		left: max(28px, env(safe-area-inset-left));
		top: calc(100dvh - 56px - env(safe-area-inset-bottom));
		width: 28px;
		height: 28px;
		z-index: 460;
		background: none;
		border: none;
		padding: 0;
		color: var(--accent);
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark).nav-open .sidebar-backdrop {
		display: none !important;
	}
}

@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) .filter-row {
		flex-direction: column;
		gap: 14px;
		margin-bottom: 24px;
	}

	body:is(.theme-light, .theme-dark) .filt {
		background: none !important;
		border: none !important;
		color: var(--text-3);
		font-family: var(--font-display);
		font-weight: 700;
		font-size: 24px;
		text-transform: uppercase;
		text-align: left;
		padding: 0;
	}

	body:is(.theme-light, .theme-dark) .filt[data-filter="all"] {
		color: var(--text);
	}

	body:is(.theme-light, .theme-dark) .filt[data-filter="in-progress"] {
		color: var(--text-2);
	}

	body:is(.theme-light, .theme-dark) .filt[data-filter="completed"] {
		color: var(--text-3);
	}

	body:is(.theme-light, .theme-dark) .filt.on {
		color: var(--accent) !important;
		text-shadow: 0 4px 16px rgba(242, 193, 24, 0.5);
	}
}

@media (max-width: 768px) {

	body:is(.theme-light, .theme-dark) .inprog-grid,
	body:is(.theme-light, .theme-dark) .proj-grid {
		display: flex;
		flex-direction: column;
		grid-template-columns: none;
		gap: 0;
		background: none;
		border: none;
	}

	body:is(.theme-light, .theme-dark) .proj-home-card {
		background: none;
		border-radius: 0;
		box-shadow: none;
		border-bottom: var(--line-w) solid var(--line);
		padding: 18px 0;
		margin-bottom: 0;
	}

	body:is(.theme-light, .theme-dark) .proj-home-card:hover {
		transform: none;
		box-shadow: none;
	}

	body:is(.theme-light, .theme-dark) .phc-cover {
		display: block !important;
		position: static !important;
		inset: auto !important;
		width: 100% !important;
		height: clamp(150px, 46vw, 220px) !important;
		margin: 0 0 12px !important;
		padding: 0 !important;
		background-size: cover !important;
		background-position: center !important;
	}

	body:is(.theme-light, .theme-dark) .phc-cover::after {
		content: none !important;
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .phc-initials,
	body:is(.theme-light, .theme-dark) .phc-logo {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .phc-body {
		padding: 0;
	}

	body:is(.theme-light, .theme-dark) .phc-date {
		font-family: var(--font-body);
		font-weight: 700;
		font-size: 12px;
		color: var(--text);
		margin-bottom: 3px;
	}

	body:is(.theme-light, .theme-dark) .phc-client {
		font-family: var(--font-body);
		font-weight: 500;
		color: var(--text-2);
		font-size: 13px;
		letter-spacing: 0.5px;
		text-transform: uppercase;
		margin-bottom: 2px;
	}

	body:is(.theme-light, .theme-dark) .phc-title {
		font-family: var(--font-display);
		font-weight: 700;
		font-size: 18px;
		line-height: 1.02;
		text-transform: uppercase;
		color: var(--text);
		white-space: normal;
		margin-bottom: 6px;
	}

	body:is(.theme-light, .theme-dark) .phc-dir {
		display: none;
	}

	body:is(.theme-light, .theme-dark) .phc-detail {
		font-family: var(--font-body);
		font-size: 13px;
		color: var(--text-3);
	}

	body:is(.theme-light, .theme-dark) .phc-progress,
	body:is(.theme-light, .theme-dark) .phc-edited,
	body:is(.theme-light, .theme-dark) .phc-live-dot,
	body:is(.theme-light, .theme-dark) .phc-done-badge,
	body:is(.theme-light, .theme-dark) .proj-dots-btn {
		display: none;
	}

	body:is(.theme-light, .theme-dark) .section-subtitle,
	body:is(.theme-light, .theme-dark) .divider {
		display: block !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: 16px !important;
		letter-spacing: 1px !important;
		color: var(--text) !important;
		text-transform: uppercase;
		border: none !important;
		margin: 34px 0 18px !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .section-subtitle span,
	body:is(.theme-light, .theme-dark) .divider span {
		color: var(--accent) !important;
		font-size: inherit !important;
		opacity: 1 !important;
		margin: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .section-subtitle::before,
	body:is(.theme-light, .theme-dark) .section-subtitle::after,
	body:is(.theme-light, .theme-dark) .divider::before,
	body:is(.theme-light, .theme-dark) .divider::after {
		content: none !important;
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .inprog-grid,
	body:is(.theme-light, .theme-dark) .proj-grid,
	body:is(.theme-light, .theme-dark) .explore-grid,
	body:is(.theme-light, .theme-dark) .places-grid {
		border: none !important;
		background: none !important;
	}
}

@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) .places-grid {
		display: flex;
		flex-direction: column;
		grid-template-columns: none;
		gap: 24px;
		background: none;
		border: none;
	}

	body:is(.theme-light, .theme-dark) .place-card {
		display: flex;
		flex-direction: column;
		background: none;
		border: none;
		padding: 0;
		margin: 0;
		overflow: hidden;
	}

	body:is(.theme-light, .theme-dark) .place-body {
		display: contents;
	}

	body:is(.theme-light, .theme-dark) .place-tag {
		order: 1;
		background: var(--bg-2);
		color: var(--text-2);
		font-family: var(--font-body);
		font-weight: 500;
		text-transform: uppercase;
		font-size: 12px;
		letter-spacing: 1px;
		padding: 18px 18px 2px;
		margin: 0;
		border-radius: 0;
	}

	body:is(.theme-light, .theme-dark) .place-name {
		order: 2;
		background: var(--bg-2);
		color: var(--text);
		font-family: var(--font-display);
		font-weight: 700;
		font-size: 18px;
		line-height: 1.02;
		text-transform: uppercase;
		padding: 0 18px 18px;
		margin: 0;
		white-space: normal;
	}

	body:is(.theme-light, .theme-dark) .place-thumb {
		order: 3;
		height: clamp(150px, 46vw, 220px);
		width: 100%;
		font-size: 40px;
		background: var(--bg-3);
	}

	body:is(.theme-light, .theme-dark) .place-thumb img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	/* Explore da Home no telemóvel: igual aos cards da lista do Explore */
	body:is(.theme-light, .theme-dark) .explore-grid {
		display: flex !important;
		flex-direction: column;
		gap: 24px;
	}

	body:is(.theme-light, .theme-dark) .explore-card {
		position: static !important;
		display: flex !important;
		flex-direction: column;
		height: auto !important;
		min-height: 0 !important;
		padding: 0 !important;
		border: none !important;
		background: none !important;
		overflow: hidden;
	}

	body:is(.theme-light, .theme-dark) .explore-content {
		order: 1;
		position: static !important;
		background: var(--bg-2);
		padding: 18px !important;
	}

	body:is(.theme-light, .theme-dark) .explore-tag {
		font-family: var(--font-body) !important;
		font-weight: 500 !important;
		text-transform: uppercase;
		font-size: 12px !important;
		letter-spacing: 1px;
		color: var(--text-2) !important;
		margin: 0 0 2px !important;
	}

	body:is(.theme-light, .theme-dark) .explore-name {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: 18px !important;
		line-height: 1.02;
		text-transform: uppercase;
		color: var(--text) !important;
		text-shadow: none !important;
	}

	body:is(.theme-light, .theme-dark) .explore-bg {
		order: 2;
		position: static !important;
		inset: auto !important;
		width: 100%;
		height: clamp(150px, 46vw, 220px) !important;
		background-color: var(--bg-3);
		background-size: cover !important;
		background-position: center !important;
		filter: none !important;
	}

	body:is(.theme-light, .theme-dark) .explore-overlay {
		display: none !important;
	}

	/* Explore no telemóvel: recorte centrado, sem o enquadramento feito para o computador */
	body:is(.theme-light, .theme-dark) :is(.place-thumb, .explore-card, .kx-thumb, .kx-pop-photo) img,
	body:is(.theme-light, .theme-dark) .kx-stage-img {
		object-fit: cover !important;
		object-position: 50% 50% !important;
		transform: none !important;
	}

	body:is(.theme-light, .theme-dark) .place-desc {
		display: none;
	}
}

/* ── Alinhamento unificado ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) .section {
		padding-left: max(28px, env(safe-area-inset-left)) !important;
		padding-right: max(28px, env(safe-area-inset-right)) !important;
	}

	body:is(.theme-light, .theme-dark) .sidebar {
		padding-left: max(28px, env(safe-area-inset-left)) !important;
		padding-right: max(28px, env(safe-area-inset-right)) !important;
	}

	body:is(.theme-light, .theme-dark) .nav-items {
		padding-left: 0 !important;
		margin-left: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .nav-items .nav-btn,
	body:is(.theme-light, .theme-dark) .nav-items .nav-item {
		margin-left: 0 !important;
		padding-left: 0 !important;
	}
}

/* ── Widget de suporte ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #support-help-fab {
		background: var(--accent) !important;
		border: none !important;
		box-shadow: 0 6px 20px rgba(242, 193, 24, 0.45) !important;
		color: #fff !important;
		padding: 0 !important;
		bottom: 26px !important;
		right: 24px !important;
		font-size: 0 !important;
		width: 52px !important;
		height: 52px !important;
		border-radius: 50% !important;
		justify-content: center;
		align-items: center;
		gap: 0;
	}

	body:is(.theme-light, .theme-dark) #support-help-fab svg {
		width: 24px !important;
		height: 24px !important;
		stroke: #fff !important;
		stroke-width: 2 !important;
	}

	body:is(.theme-light, .theme-dark) #support-help-fab svg path:first-child {
		fill: none !important;
	}

	body:is(.theme-light, .theme-dark) #support-help-fab:hover {
		transform: translateY(-1px);
		box-shadow: 0 8px 24px rgba(242, 193, 24, 0.55) !important;
	}
}

/* ── Modal de suporte ── */
@media (max-width: 768px) {
	#support-chat-overlay {
		align-items: flex-end !important;
		justify-content: center !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .support-chat-panel {
		width: 100vw !important;
		max-width: 100vw !important;
		max-height: 88vh !important;
		background: var(--surface) !important;
		border: none !important;
		border-radius: 20px 20px 0 0 !important;
		box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.28) !important;
	}

	body:is(.theme-light, .theme-dark) .support-chat-head {
		background: none !important;
		border-bottom: none !important;
		padding: 22px 22px 4px !important;
	}

	body:is(.theme-light, .theme-dark) .support-chat-title {
		font-family: var(--font-display) !important;
		font-size: 24px !important;
		letter-spacing: -0.3px !important;
		text-transform: uppercase;
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) .support-chat-close {
		font-size: 26px !important;
		color: var(--text-2) !important;
	}

	body:is(.theme-light, .theme-dark) .support-chat-body {
		padding: 6px 22px calc(24px + env(safe-area-inset-bottom)) !important;
		gap: 12px;
	}

	body:is(.theme-light, .theme-dark) .support-chat-copy {
		font-family: var(--font-body);
		color: var(--text-2) !important;
		font-size: 14px;
		margin-bottom: 2px;
	}

	body:is(.theme-light, .theme-dark) .support-chat-label {
		font-family: var(--font-body) !important;
		font-size: 11px !important;
		font-weight: 700 !important;
		letter-spacing: 0.5px !important;
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) .support-chat-input,
	body:is(.theme-light, .theme-dark) .support-compose-input {
		background: var(--bg-2) !important;
		border: none !important;
		border-radius: var(--r-pill) !important;
		padding: 13px 18px !important;
		font-family: var(--font-body) !important;
		font-size: 16px !important;
		box-shadow: inset 0 0 0 1px var(--field-ring) !important;
		margin-bottom: 4px !important;
	}

	body:is(.theme-light, .theme-dark) .support-chat-input:focus,
	body:is(.theme-light, .theme-dark) .support-compose-input:focus {
		background: var(--surface) !important;
		box-shadow: inset 0 0 0 1.5px var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) #support-open-ticket-btn {
		width: 100% !important;
		border-radius: var(--r-pill) !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-weight: 700;
		padding: 14px !important;
		font-size: 13px;
	}

	body:is(.theme-light, .theme-dark) .support-chat-note {
		font-family: var(--font-body);
		text-align: center;
	}

	body:is(.theme-light, .theme-dark) .support-messages {
		font-family: var(--font-body);
	}
}

/* ── Ecrã de projetos ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #sec-projects .page-title {
		font-family: var(--font-display);
		font-weight: 700;
	}

	body:is(.theme-light, .theme-dark) .proj-row {
		border-left: none !important;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		padding: 0 0 28px;
		gap: 0;
	}

	body:is(.theme-light, .theme-dark) .proj-list .proj-row:first-child {
		border-top: none;
	}

	body:is(.theme-light, .theme-dark) .proj-row:not(:first-child) {
		padding-top: 28px;
	}

	body:is(.theme-light, .theme-dark) .proj-row:hover {
		background: none;
	}

	body:is(.theme-light, .theme-dark) .proj-row-icon {
		display: none;
	}

	body:is(.theme-light, .theme-dark) .proj-row-right {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .proj-row-cover {
		width: 100%;
		height: clamp(150px, 46vw, 220px);
		overflow: hidden;
		margin-bottom: 14px;
		background: var(--bg-2);
	}

	body:is(.theme-light, .theme-dark) .proj-row-cover img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	body:is(.theme-light, .theme-dark) .proj-row-info {
		width: 100%;
	}

	body:is(.theme-light, .theme-dark) .proj-row-meta {
		display: none;
	}

	body:is(.theme-light, .theme-dark) .proj-row-date {
		font-family: var(--font-body);
		font-weight: 700;
		font-size: 12px;
		color: var(--text);
		margin-bottom: 3px;
	}

	body:is(.theme-light, .theme-dark) .proj-row-client {
		font-family: var(--font-body);
		font-weight: 500;
		font-size: 13px;
		color: var(--text-2);
		text-transform: uppercase;
		letter-spacing: 0.5px;
		margin-bottom: 2px;
	}

	body:is(.theme-light, .theme-dark) .proj-row-name {
		font-family: var(--font-display);
		font-weight: 700;
		font-size: 18px;
		line-height: 1.02;
		text-transform: uppercase;
		color: var(--text);
		margin-bottom: 6px;
	}

	body:is(.theme-light, .theme-dark) .proj-row-detail {
		font-family: var(--font-body);
		font-size: 13px;
		color: var(--text-3);
	}

	/* KI: sem filtros de estado; o estado vai para o canto do card */
	body.app-ki:is(.theme-light, .theme-dark) #sec-projects .filter-row {
		display: none !important;
	}

	body.app-ki:is(.theme-light, .theme-dark) .proj-row-status {
		display: block;
		text-align: right;
		margin-top: 8px;
		font-family: var(--font-body);
		font-weight: 700;
		font-size: 11px;
		letter-spacing: 0.5px;
		text-transform: uppercase;
		color: var(--text);
	}

	body.app-ki:is(.theme-light, .theme-dark) .proj-row-status.is-done {
		color: var(--text-3);
	}
}

.proj-row-status {
	display: none;
}

.proj-row-client,
.proj-row-detail,
.proj-row-date,
.proj-row-cover,
.phc-date,
.phc-detail {
	display: none;
}

body:is(.theme-light, .theme-dark) .proj-row-client,
body:is(.theme-light, .theme-dark) .proj-row-detail,
body:is(.theme-light, .theme-dark) .proj-row-date,
body:is(.theme-light, .theme-dark) .proj-row-cover,
body:is(.theme-light, .theme-dark) .phc-date,
body:is(.theme-light, .theme-dark) .phc-detail {
	display: block;
}

/* ── Definições e perfil ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) .settings-menu {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 28px;
		margin-top: 12px;
	}

	body:is(.theme-light, .theme-dark) .settings-item {
		background: none;
		border: none;
		padding: 0;
		font-family: var(--font-display);
		font-weight: 700;
		font-size: 40px;
		line-height: 1.0;
		text-transform: uppercase;
		letter-spacing: -0.5px;
		text-align: left;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) .settings-item[data-set="profile"] {
		color: var(--text);
	}

	body:is(.theme-light, .theme-dark) .settings-item[data-set="access"] {
		color: var(--text-2);
	}

	body:is(.theme-light, .theme-dark) .settings-item[data-set="audit"] {
		color: var(--accent);
	}

	body:is(.theme-light, .theme-dark) #sec-profile.active {
		display: flex;
		flex-direction: column;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .profile-layout {
		order: 1;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .topbar {
		order: 2;
		display: block !important;
		border: none !important;
		background: none !important;
		padding: 0 !important;
		margin: 16px 0 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .page-title {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .topbar-right {
		display: flex;
		flex-direction: column;
		gap: 10px;
		width: 100%;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .topbar-right .btn {
		width: 100%;
		border-radius: var(--r-pill) !important;
		text-transform: uppercase;
		font-family: var(--font-body);
		font-size: 12px;
		letter-spacing: 0.5px;
		padding: 13px !important;
		min-height: 46px;
	}

	body:is(.theme-light, .theme-dark) .profile-layout {
		display: block;
	}

	body:is(.theme-light, .theme-dark) .prof-card,
	body:is(.theme-light, .theme-dark) .prof-right .sett-card {
		background: none !important;
		border: none !important;
		box-shadow: none !important;
		border-radius: 0 !important;
		padding: 0 !important;
		margin-bottom: 32px;
		text-align: left;
	}

	body:is(.theme-light, .theme-dark) .prof-card {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
	}

	body:is(.theme-light, .theme-dark) .prof-av {
		width: 64px;
		height: 64px;
		background: var(--accent) !important;
		color: #fff !important;
		font-family: var(--font-display);
		font-weight: 700;
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		font-size: 22px;
		margin: 0 0 14px 0 !important;
	}

	body:is(.theme-light, .theme-dark) .prof-name {
		font-family: var(--font-display);
		font-weight: 700;
		font-size: 28px;
		text-transform: uppercase;
		color: var(--text);
		line-height: 1.05;
	}

	body:is(.theme-light, .theme-dark) .prof-role {
		font-family: var(--font-body);
		color: var(--text-2);
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 12px;
		margin-bottom: 16px;
	}

	body:is(.theme-light, .theme-dark) .info-row {
		display: flex;
		flex-direction: column;
		gap: 2px;
	}

	body:is(.theme-light, .theme-dark) .info-lbl {
		font-family: var(--font-body);
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 11px;
		color: var(--text-3);
	}

	body:is(.theme-light, .theme-dark) .info-val {
		font-family: var(--font-body);
		font-size: 15px;
		color: var(--text);
	}

	body:is(.theme-light, .theme-dark) .sett-hdr {
		font-family: var(--font-display);
		font-weight: 700;
		font-size: 18px;
		text-transform: uppercase;
		color: var(--text);
		margin-bottom: 14px;
	}

	body:is(.theme-light, .theme-dark) .am-field label {
		font-family: var(--font-body);
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 11px;
		color: var(--text-3);
	}

	body:is(.theme-light, .theme-dark) .am-input {
		background: var(--field) !important;
		border: none !important;
		border-radius: var(--r-pill) !important;
		color: var(--text) !important;
		padding: 12px 18px !important;
		font-family: var(--font-body) !important;
	}

	body:is(.theme-light, .theme-dark) .sett-row-lbl {
		font-family: var(--font-body);
		font-weight: 500;
		color: var(--text);
	}

	body:is(.theme-light, .theme-dark) .sett-row-desc {
		font-family: var(--font-body);
		color: var(--text-2);
		font-size: 12px;
	}

	body:is(.theme-light, .theme-dark) .sett-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		padding: 16px 0;
	}

	body:is(.theme-light, .theme-dark) .sett-row .btn {
		width: 100%;
	}
}

/* ── Página de clientes ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #clients-grid {
		display: flex;
		flex-direction: column;
		gap: 0;
		grid-template-columns: none;
	}

	body:is(.theme-light, .theme-dark) .client-card {
		background: none !important;
		border: none !important;
		border-radius: 0 !important;
		border-bottom: var(--line-w) solid var(--line) !important;
		box-shadow: none !important;
		padding: 18px 0;
	}

	body:is(.theme-light, .theme-dark) .client-card:hover {
		border-color: var(--line) !important;
		box-shadow: none !important;
	}

	body:is(.theme-light, .theme-dark) .client-card-banner {
		background: none !important;
		border-bottom: none !important;
		padding: 0 !important;
		align-items: center;
		gap: 12px;
	}

	body:is(.theme-light, .theme-dark) .client-card-avatar {
		width: 40px;
		height: 40px;
		border-radius: 50% !important;
		background: var(--accent) !important;
		color: #fff !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: 15px !important;
	}

	body:is(.theme-light, .theme-dark) .client-card-name {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: 22px !important;
		letter-spacing: 0 !important;
		text-transform: uppercase;
		color: var(--text) !important;
		white-space: normal;
	}

	body:is(.theme-light, .theme-dark) .client-card-edit-btn {
		background: none !important;
		border: none !important;
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) .client-card-body {
		padding: 8px 0 0 52px !important;
	}

	body:is(.theme-light, .theme-dark) .client-card-row {
		color: var(--text-2);
		font-family: var(--font-body);
		font-size: 13px;
	}

	body:is(.theme-light, .theme-dark) .client-card-footer {
		padding: 6px 0 0 52px !important;
		border: none !important;
		background: none !important;
	}

	body:is(.theme-light, .theme-dark) .client-card-projects {
		font-family: var(--font-body);
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 11px;
		color: var(--text-3);
	}

	body:is(.theme-light, .theme-dark) .client-card-delete-btn {
		background: none !important;
		border: none !important;
		color: var(--text-3) !important;
		text-transform: uppercase;
		font-size: 11px;
		letter-spacing: 0.5px;
	}

	body:is(.theme-light, .theme-dark) .client-card-new {
		flex-direction: row !important;
		align-items: center;
		gap: 10px;
		justify-content: flex-start !important;
		background: none !important;
		border: none !important;
		border-bottom: var(--line-w) solid var(--line) !important;
		border-radius: 0 !important;
		padding: 18px 0 !important;
		color: var(--accent) !important;
		font-family: var(--font-display);
		font-weight: 700;
		text-transform: uppercase;
		min-height: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .client-card-new svg {
		width: 22px !important;
		height: 22px !important;
	}

	body:is(.theme-light, .theme-dark) .client-card-new span {
		font-size: 18px;
	}
}

/* ── Ajustes finais ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) .client-card-avatar {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .client-card-body,
	body:is(.theme-light, .theme-dark) .client-card-footer {
		padding-left: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .btn {
		border-radius: var(--r-pill) !important;
		font-family: var(--font-body) !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 12px;
		font-weight: 700;
		padding: 12px 22px;
		min-height: 44px;
	}

	body:is(.theme-light, .theme-dark) .btn-accent {
		background: var(--accent) !important;
		color: #fff !important;
		border: none !important;
	}

	body:is(.theme-light, .theme-dark) .btn-outline {
		background: none !important;
		border: 1.5px solid var(--text) !important;
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) .btn-sm {
		padding: 9px 16px;
		min-height: 38px;
		font-size: 11px;
	}
}

/* ── Zoom automático no iOS ── */
@media (max-width: 768px) {

	body:is(.theme-light, .theme-dark) input,
	body:is(.theme-light, .theme-dark) textarea,
	body:is(.theme-light, .theme-dark) select,
	body:is(.theme-light, .theme-dark) .am-input,
	body:is(.theme-light, .theme-dark) .search {
		font-size: 16px !important;
	}
}

/* ── Explore Lisbon: cabeçalho ── */
@media (max-width: 768px) {

	body:is(.theme-light, .theme-dark) #sec-lisbon-places>.topbar,
	body:is(.theme-light, .theme-dark) #sec-lisbon-food>.topbar,
	body:is(.theme-light, .theme-dark) #sec-lisbon-hotels>.topbar {
		display: flex !important;
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
		background: none !important;
		border: none !important;
		padding: 0 !important;
		margin: 0 0 20px !important;
	}

	body:is(.theme-light, .theme-dark) #sec-lisbon-places .page-title,
	body:is(.theme-light, .theme-dark) #sec-lisbon-food .page-title,
	body:is(.theme-light, .theme-dark) #sec-lisbon-hotels .page-title {
		display: block !important;
		font-family: var(--font-display);
		font-weight: 700;
		font-size: 22px;
		text-transform: uppercase;
		color: var(--text);
		letter-spacing: 0;
	}

	body:is(.theme-light, .theme-dark) #sec-lisbon-places .page-title span,
	body:is(.theme-light, .theme-dark) #sec-lisbon-food .page-title span,
	body:is(.theme-light, .theme-dark) #sec-lisbon-hotels .page-title span {
		color: var(--accent);
	}

	body:is(.theme-light, .theme-dark) #sec-lisbon-places .topbar-right,
	body:is(.theme-light, .theme-dark) #sec-lisbon-food .topbar-right,
	body:is(.theme-light, .theme-dark) #sec-lisbon-hotels .topbar-right {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		padding: 0 !important;
		width: 100%;
	}

	body:is(.theme-light, .theme-dark) #sec-lisbon-places .topbar-right .btn,
	body:is(.theme-light, .theme-dark) #sec-lisbon-food .topbar-right .btn,
	body:is(.theme-light, .theme-dark) #sec-lisbon-hotels .topbar-right .btn {
		width: auto;
		min-height: 36px;
		padding: 8px 16px;
		font-size: 11px;
	}

	body:is(.theme-light, .theme-dark) .lisbon-hero {
		display: none !important;
	}
}

/* ── Explore Lisbon: detalhe do local ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #sec-place-detail .lisbon-hero {
		display: flex !important;
		flex-direction: column;
		align-items: flex-start !important;
		gap: 0 !important;
		grid-template-columns: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .lisbon-hero::before {
		display: none !important;
		content: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .lisbon-hero>div {
		display: flex;
		flex-direction: column;
	}

	body:is(.theme-light, .theme-dark) #place-detail-tag {
		order: 1;
		margin: 0 0 3px !important;
		background: none;
		color: var(--text-2);
		font-family: var(--font-body);
		text-transform: uppercase;
		font-size: 12px;
		letter-spacing: 1px;
	}

	body:is(.theme-light, .theme-dark) #place-detail-title {
		order: 2;
		margin: 0 0 14px !important;
		font-family: var(--font-display);
		font-weight: 700;
		font-size: 24px;
		line-height: 1.02;
		text-transform: uppercase;
		color: var(--text);
	}

	body:is(.theme-light, .theme-dark) #place-detail-hero {
		order: 3;
		font-size: 0 !important;
		margin: 0 0 16px !important;
		height: 220px;
		width: 100%;
		overflow: hidden;
		background: var(--bg-3);
	}

	body:is(.theme-light, .theme-dark) .place-detail-img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	body:is(.theme-light, .theme-dark) #place-detail-desc {
		order: 4;
		margin: 0 0 22px !important;
		font-family: var(--font-body);
		color: var(--text-2) !important;
		font-size: 14px;
		line-height: 1.6;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .lisbon-hero>div:last-child {
		order: 5;
		gap: 16px;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .bio-contact-item {
		display: flex;
		align-items: flex-start;
		gap: 10px;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .bio-contact-icon {
		color: var(--accent);
		flex-shrink: 0;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .bio-contact-icon svg {
		width: 16px;
		height: 16px;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .bio-contact-lbl {
		font-family: var(--font-body) !important;
		color: var(--accent) !important;
		font-size: 11px !important;
		letter-spacing: 1px !important;
		text-transform: uppercase;
		font-weight: 700;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .bio-contact-val {
		font-family: var(--font-body) !important;
		font-size: 14px !important;
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) #place-back-btn {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #place-maps-btn {
		margin-top: 12px !important;
	}
}

/* ── Chips de categoria ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) .cat-nav {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
		width: 100%;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .cat-chip {
		background: none;
		border: 1.5px solid var(--line);
		color: var(--text-2);
		border-radius: var(--r-pill);
		font-family: var(--font-body);
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 11px;
		padding: 8px 16px;
		min-height: 36px;
		cursor: pointer;
		transition: all 0.15s;
	}

	body:is(.theme-light, .theme-dark) .cat-chip.cat-on {
		background: var(--accent);
		border-color: var(--accent);
		color: #fff;
		box-shadow: 0 4px 16px rgba(242, 193, 24, 0.5);
	}
}

/* ── Zoom por duplo toque ── */
body:is(.theme-light, .theme-dark),
body:is(.theme-light, .theme-dark) * {
	touch-action: manipulation;
}

.bio-cta {
	display: none;
}

/* ── BIO: logos de "We are part of" ── */
body:is(.theme-light, .theme-dark) #sec-bio .bio-hero>.bio-partof {
	grid-column: 1 / -1;
	margin-top: clamp(28px, 3vw, 48px);
	container-type: inline-size;
}

/* Medidas do designer: desktop 1038x114, telemóvel 334x128 */
body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos {
	list-style: none;
	margin: 12px 0 0;
	padding: 0 4.2% 0 3%;
	min-height: min(114px, 11cqi);
	display: flex;
	align-items: center;
	justify-content: space-between;
}

body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos li {
	flex: none;
	height: min(calc(var(--hd) * 1px), calc(var(--hd) / 1038 * 100cqi));
}

body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos img {
	display: block;
	height: 100%;
	width: auto;
}

body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos .is-dark,
body.theme-dark #sec-bio .bio-partof-logos .is-light {
	display: none;
}

body.theme-dark #sec-bio .bio-partof-logos .is-dark {
	display: block;
}

body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos .p-epa {
	--hd: 52;
	--hm: 33;
}

body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos .p-appf {
	--hd: 65;
	--hm: 41;
}

body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos .p-adgreen {
	--hd: 60;
	--hm: 38;
}

body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos .p-gtb {
	--hd: 65;
	--hm: 41;
}

body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos .p-jwc {
	--hd: 79;
	--hm: 51;
}

@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos {
		flex-wrap: wrap;
		padding: 2.7cqi 7.5% 2.7cqi 6.3%;
		min-height: 0;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos::after {
		content: '';
		order: 2;
		flex-basis: 100%;
		height: 5cqi;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos li {
		order: 3;
		height: calc(var(--hm) / 334 * 100cqi);
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-logos :is(.p-epa, .p-appf) {
		order: 1;
		align-self: flex-end;
	}
}

/* ── Dropdown personalizado ── */
.kdd {
	position: relative;
}

.kdd>select {
	display: none !important;
}

body:is(.theme-light, .theme-dark) .kdd-btn {
	width: 100%;
	text-align: left;
	cursor: pointer;
	background: var(--field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23888888' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center / 13px;
	border: none;
	border-radius: var(--r-pill);
	box-shadow: inset 0 0 0 1px var(--field-ring);
	padding: 12px 42px 12px 18px;
	font-family: var(--font-body);
	font-size: 13px;
	color: var(--text);
	transition: box-shadow 0.15s, background-color 0.15s;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.kdd.open .kdd-btn,
body:is(.theme-light, .theme-dark) .kdd-btn:focus-visible {
	outline: none;
	box-shadow: inset 0 0 0 1.5px var(--accent);
}

.kdd-panel {
	display: none;
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	z-index: 12050;
	background: var(--surface);
	border: var(--line-w) solid var(--line);
	border-radius: 14px;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.25);
	padding: 6px;
	max-height: 280px;
	overflow-y: auto;
}

body:is(.theme-light, .theme-dark) .kdd-search {
	width: 100%;
	display: block;
	margin: 2px 0 6px;
	background: var(--field);
	border: none;
	border-radius: var(--r-pill);
	box-shadow: inset 0 0 0 1px var(--field-ring);
	padding: 9px 14px;
	font-family: var(--font-body);
	font-size: 13px;
	color: var(--text);
}

body:is(.theme-light, .theme-dark) .kdd-search:focus {
	outline: none;
	box-shadow: inset 0 0 0 1.5px var(--accent);
}

body:is(.theme-light, .theme-dark) .kdd-opt.hl {
	background: var(--field);
}

body:is(.theme-light, .theme-dark) .kdd-empty {
	padding: 12px;
	font-family: var(--font-body);
	font-size: 12px;
	color: var(--text-3);
	text-align: center;
}

.kdd.open .kdd-panel {
	display: block;
}

.kdd-opt {
	padding: 9px 12px;
	border-radius: 8px;
	cursor: pointer;
	font-family: var(--font-body);
	font-size: 13px;
	color: var(--text);
}

.kdd-opt:hover {
	background: var(--field);
}

.kdd-opt.on {
	color: var(--accent);
	font-weight: 700;
	-webkit-text-stroke: 0.025px #211f1f;
	paint-order: stroke fill;
}

.kdd-opt.off {
	color: var(--text-3);
	cursor: default;
}

.kdd-group {
	padding: 10px 12px 4px;
	font-family: var(--font-body);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--text-3);
}

.kdd-sm .kdd-btn {
	padding: 9px 36px 9px 14px;
	font-size: 12px;
	background-position: right 13px center;
	background-size: 12px;
}

.audit-filter-bar .kdd {
	flex: 1;
	min-width: 140px;
}

/* ── Sugestões em campos de texto ── */
.ksg {
	position: relative;
}

.ksg.open .kdd-panel {
	display: block;
}

/* ── Dropdown de clientes com largura fixa ── */
body:is(.theme-light, .theme-dark) .np-row-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

body:is(.theme-light, .theme-dark) .np-row-2>.am-field,
body:is(.theme-light, .theme-dark) .am-field:has(> .kdd > #ps-client) {
	min-width: 0;
}

body:is(.theme-light, .theme-dark) .np-client-wrap>.kdd {
	flex: 1 1 0;
	min-width: 0;
}

body:is(.theme-light, .theme-dark) .kdd:has(> #np-client, > #ps-client) {
	width: 100%;
	min-width: 0;
}

@media (max-width: 600px) {
	body:is(.theme-light, .theme-dark) .np-row-2 {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ── Controlos personalizados ── */
body:is(.theme-light, .theme-dark) input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	border-radius: 5px;
	background: var(--field);
	box-shadow: inset 0 0 0 1.5px var(--field-ring);
	cursor: pointer;
	vertical-align: -4px;
	margin-right: 7px;
	transition: background 0.15s, box-shadow 0.15s;
	display: inline-block;
	position: relative;
}

body:is(.theme-light, .theme-dark) input[type="checkbox"]:hover {
	box-shadow: inset 0 0 0 1.5px var(--text-3);
}

body:is(.theme-light, .theme-dark) input[type="checkbox"]:checked {
	background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l5 5L20 7'/%3E%3C/svg%3E") no-repeat center / 12px;
	box-shadow: none;
}

body:is(.theme-light, .theme-dark) input[type="checkbox"]:focus-visible {
	outline: none;
	box-shadow: inset 0 0 0 1.5px var(--field-ring), 0 0 0 2.5px var(--accent-dim), 0 0 0 1.5px var(--accent);
}

body:is(.theme-light, .theme-dark) input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	border-radius: 50%;
	background: var(--field);
	box-shadow: inset 0 0 0 1.5px var(--field-ring);
	cursor: pointer;
	vertical-align: -4px;
	margin-right: 7px;
	transition: background 0.15s, box-shadow 0.15s;
	display: inline-block;
}

body:is(.theme-light, .theme-dark) input[type="radio"]:checked {
	background: var(--accent);
	box-shadow: inset 0 0 0 3px var(--surface), 0 0 0 1.5px var(--accent);
}

body:is(.theme-light, .theme-dark) #sec-bio .bio-ci {
	display: inline-flex;
	vertical-align: -2px;
	margin-right: 6px;
}

body:is(.theme-light, .theme-dark) #sec-bio .bio-ci svg {
	width: 13px;
	height: 13px;
}

body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-slash {
	color: var(--accent);
	font-weight: 700;
	margin-right: 2px;
}

/* ── Bio, equipa e contactos ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #sec-bio .page-title {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-hero {
		padding-left: 0 !important;
		padding-right: 0 !important;
		max-width: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-hero::before {
		display: none !important;
		content: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-logo {
		margin: 6px 0 22px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-logo img {
		height: 144px !important;
		width: auto;
		max-width: 100%;
	}

	body.theme-light #sec-bio .bio-logo .logo-dark {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-tagline {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-hero p {
		font-family: var(--font-body);
		color: var(--text) !important;
		font-size: 13px;
		line-height: 1.6;
		margin: 0 0 13px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-mission {
		font-style: normal;
		color: var(--text-2) !important;
		font-size: 13px !important;
		border-left: none;
		padding-left: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-cta {
		display: flex;
		align-items: flex-start;
		gap: 24px;
		margin: 22px 0 8px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-cta-btns {
		display: flex;
		flex-direction: column;
		gap: 10px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		background: var(--accent);
		color: #fff;
		font-family: var(--font-body);
		font-weight: 700;
		text-transform: uppercase;
		font-size: 12px;
		letter-spacing: 0.5px;
		padding: 11px 22px;
		min-width: 132px;
		border-radius: var(--r-pill);
		text-decoration: none;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-lbl {
		font-family: var(--font-body);
		font-weight: 700;
		text-transform: uppercase;
		color: var(--text);
		font-size: 11px;
		letter-spacing: 0.5px;
		margin-bottom: 5px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-section {
		margin-top: 42px;
		border: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-section-title {
		font-family: var(--font-display);
		font-weight: 700;
		font-size: 34px;
		text-transform: uppercase;
		color: var(--text);
		letter-spacing: -0.5px;
		line-height: 1;
		margin: 0 0 24px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-section--team {
		background: transparent !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-section--team .bio-team-list {
		background: var(--bg-2) !important;
		border-radius: 8px;
		padding: 26px 24px 30px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-section--contacts {
		background: transparent !important;
		padding: 0 !important;
	}

	/* ── Equipa ── */
	body:is(.theme-light, .theme-dark) #sec-bio .bio-team-list {
		display: flex !important;
		flex-direction: column;
		gap: 30px;
		background: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-team-item {
		display: flex;
		flex-direction: column;
		background: transparent !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-team-role {
		order: 1;
		font-family: var(--font-body);
		font-weight: 500;
		text-transform: uppercase;
		color: var(--text);
		font-size: 15px;
		letter-spacing: 0.3px;
		margin-bottom: 1px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-team-name {
		order: 2;
		font-family: var(--font-display);
		font-weight: 700;
		text-transform: uppercase;
		color: var(--text-3);
		font-size: 29px;
		line-height: 1;
		margin-bottom: 3px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-team-email {
		order: 3;
		font-family: var(--font-body);
		font-weight: 700;
		color: var(--text) !important;
		font-size: 13px;
		text-decoration: none;
	}

	/* ── Contactos ── */
	body:is(.theme-light, .theme-dark) #sec-bio .bio-map-full {
		height: 190px !important;
		width: 100%;
		margin: 0 0 26px !important;
		background: var(--bg-3);
		border: none !important;
		border-radius: 4px;
		overflow: hidden;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-map-full iframe {
		border-radius: 4px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contacts-strip {
		display: flex !important;
		flex-direction: column;
		gap: 18px;
		grid-template-columns: none !important;
		background: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contact-block {
		background: transparent !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contact-lbl {
		font-family: var(--font-body) !important;
		color: var(--accent) !important;
		font-size: 11px !important;
		letter-spacing: 1px;
		text-transform: uppercase;
		font-weight: 700;
		margin-bottom: 3px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contact-val {
		font-family: var(--font-body) !important;
		color: var(--text) !important;
		font-size: 14px !important;
		font-weight: 700;
		line-height: 1.45;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contact-val a {
		color: var(--text) !important;
		text-decoration: none;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contact-socials {
		margin-top: 4px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-socials {
		display: flex;
		gap: 12px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-social-link {
		width: 40px;
		height: 40px;
		border-radius: 50%;
		background: var(--text-3);
		color: #fff;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-social-link svg {
		width: 18px;
		height: 18px;
	}
}

/* ── Detalhe do projeto ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #sec-project-detail>div:first-of-type {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-cover {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-initials {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-hero-actions {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-info {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-meta {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-hero {
		background: none !important;
		border: none !important;
		padding: 0 !important;
		margin: 4px 0 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-hero-inner {
		display: block !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-kicker {
		font-family: var(--font-body);
		font-weight: 700;
		text-transform: uppercase;
		color: var(--text);
		font-size: 14px;
		letter-spacing: 0.5px;
		margin-bottom: 2px;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-title {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: 24px !important;
		line-height: 1 !important;
		text-transform: uppercase;
		color: var(--text) !important;
		letter-spacing: -0.5px;
		margin: 0 0 5px !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-detail {
		font-family: var(--font-body);
		color: var(--text-2);
		font-size: 13px;
		font-weight: 500;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-docs-label {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail #proj-docs-grid {
		margin-top: 32px !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .divider-top {
		margin: 0 !important;
		border: none !important;
		padding: 0 0 22px !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: 20px !important;
		text-transform: uppercase;
		color: var(--text) !important;
		letter-spacing: -0.3px !important;
		display: block !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-actions {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .prod-section-card {
		background: none !important;
		border: none !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .prod-section-card-hdr {
		background: none !important;
		border: none !important;
		padding: 0 0 22px !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .prod-section-card-title {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: 26px !important;
		text-transform: uppercase;
		color: var(--text) !important;
		letter-spacing: -0.3px;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .prod-section-hdr-actions {
		display: none !important;
	}

	body.app-ki:is(.theme-light, .theme-dark) #sec-project-detail .prod-section-card-body {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail #pdf-empty,
	body:is(.theme-light, .theme-dark) #sec-project-detail #pdf-viewer-wrap {
		display: none !important;
	}
}

/* ── Chips de filtro ── */
@media (max-width: 768px) {

	body:is(.theme-light, .theme-dark) #sec-access :is(.scope-chip, .access-status-chip),
	body:is(.theme-light, .theme-dark) #sec-trash :is(.scope-chip, .archive-tab) {
		background: none !important;
		border: none !important;
		border-bottom: 3px solid transparent !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		min-height: 0 !important;
		padding: 0 0 4px !important;
		color: var(--text-3) !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 13px !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access :is(.scope-chip, .access-status-chip).active,
	body:is(.theme-light, .theme-dark) #sec-trash :is(.scope-chip, .archive-tab).active {
		background: none !important;
		color: var(--text) !important;
		border-bottom: 3px solid var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access :is(.access-status-chips, .access-scope-chips),
	body:is(.theme-light, .theme-dark) #sec-trash :is(.archive-tabs, .scope-filter-row) {
		gap: 22px !important;
	}

	body:is(.theme-light, .theme-dark) #sec-trash #archive-note {
		margin-top: 14px !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access :is(.access-status-chips, .access-scope-chips),
	body:is(.theme-light, .theme-dark) #sec-trash :is(.archive-tabs, .scope-filter-row) {
		flex-wrap: nowrap !important;
		max-width: 100%;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		overscroll-behavior-x: contain;
		scroll-snap-type: x proximity;
		scroll-padding-inline: 16px;
		padding-block: 5px;
		margin-block: -5px;
	}

	body:is(.theme-light, .theme-dark) #sec-access :is(.access-status-chips, .access-scope-chips)::-webkit-scrollbar,
	body:is(.theme-light, .theme-dark) #sec-trash :is(.archive-tabs, .scope-filter-row)::-webkit-scrollbar {
		display: none;
	}

	body:is(.theme-light, .theme-dark) #sec-access :is(.access-status-chips, .access-scope-chips)>*,
	body:is(.theme-light, .theme-dark) #sec-trash :is(.archive-tabs, .scope-filter-row)>* {
		flex-shrink: 0;
		white-space: nowrap;
		scroll-snap-align: start;
	}
}

/* ── Gestão de acessos ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #sec-access .access-list {
		border: none !important;
		margin-top: 18px;
		overflow: visible;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-row {
		background: transparent !important;
		border-left: none !important;
		border-bottom: var(--line-w) solid var(--line) !important;
		padding: 16px 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-row.is-super-admin {
		border-left: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-name {
		font-family: var(--font-display) !important;
		font-weight: 700;
		font-size: 18px;
		text-transform: uppercase;
		white-space: normal !important;
		overflow: visible !important;
		text-overflow: clip !important;
		overflow-wrap: anywhere;
	}

	body:is(.theme-light, .theme-dark) #sec-access .roles-manager {
		background: none !important;
		border: none !important;
		padding: 0 !important;
		margin-top: 6px;
	}

	body:is(.theme-light, .theme-dark) #sec-access .roles-manager-grid {
		background: none !important;
		gap: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .roles-list-pane,
	body:is(.theme-light, .theme-dark) #sec-access .roles-editor-pane {
		background: none !important;
		border: none !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .role-template-list {
		gap: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .role-template-item {
		background: transparent !important;
		border: none !important;
		border-bottom: var(--line-w) solid var(--line) !important;
		border-radius: 0 !important;
		padding: 15px 0 !important;
		font-family: var(--font-body) !important;
		font-weight: 700;
		font-size: 15px;
		text-transform: uppercase;
		letter-spacing: 0.3px;
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .role-template-item.active {
		color: var(--accent-text) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .role-template-badge.system {
		background: none !important;
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .roles-list-header {
		padding: 0 0 6px !important;
	}
}

/* ── Modais partilhados ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) .modal-title {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: 26px !important;
		letter-spacing: -0.3px !important;
		margin-bottom: 20px !important;
	}

	body:is(.theme-light, .theme-dark) .am-field label {
		color: var(--text-2) !important;
		font-weight: 700 !important;
	}

	body:is(.theme-light, .theme-dark) .am-input {
		box-shadow: inset 0 0 0 1px var(--field-ring) !important;
		transition: box-shadow 0.15s, background 0.15s !important;
	}

	body:is(.theme-light, .theme-dark) .am-input:focus {
		background: var(--surface) !important;
		box-shadow: inset 0 0 0 1.5px var(--accent) !important;
		outline: none !important;
	}

	body:is(.theme-light, .theme-dark) textarea.am-input {
		border-radius: 18px !important;
		min-height: 96px !important;
		padding: 14px 18px !important;
		line-height: 1.5 !important;
	}

	body:is(.theme-light, .theme-dark) .am-footer {
		gap: 10px !important;
	}

	body:is(.theme-light, .theme-dark) .am-btn {
		border-radius: var(--r-pill) !important;
		font-family: var(--font-body) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 12px !important;
		padding: 13px 24px !important;
		min-height: 44px;
	}

	body:is(.theme-light, .theme-dark) .am-btn-cancel {
		background: none !important;
		border: 1.5px solid var(--line) !important;
		color: var(--text-2) !important;
	}

	body:is(.theme-light, .theme-dark) .am-btn-save {
		background: var(--accent) !important;
		color: #fff !important;
		border: none !important;
	}

	body:is(.theme-light, .theme-dark) .am-btn-danger {
		background: none !important;
		border: 1.5px solid var(--red-s, #e5484d) !important;
		color: var(--red-s, #e5484d) !important;
	}
}

body:has(.modal-overlay.open) #support-help-fab,
body:has(#roles-manager-grid:not(.editor-hidden)) #support-help-fab {
	display: none !important;
}

/* ── Página e modal de acessos ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #sec-access .access-avatar {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .toggle.on {
		background: rgba(242, 193, 24, 0.30) !important;
		border-color: var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) .toggle.on::after {
		background: var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) .modal .toggle {
		width: 44px !important;
		height: 24px !important;
	}

	body:is(.theme-light, .theme-dark) .modal .toggle::after {
		width: 18px !important;
		height: 18px !important;
		top: 2px !important;
	}

	body:is(.theme-light, .theme-dark) .modal .toggle.on::after {
		left: 23px !important;
	}

	body:is(.theme-light, .theme-dark) .am-section-title {
		font-family: var(--font-body) !important;
		font-size: 11px !important;
		font-weight: 700 !important;
		letter-spacing: 1px !important;
		text-transform: uppercase;
		color: var(--text-3) !important;
		opacity: 1 !important;
		margin-bottom: 12px !important;
	}

	body:is(.theme-light, .theme-dark) .proj-perm-row {
		background: transparent !important;
		border: none !important;
		border-bottom: var(--line-w) solid var(--line) !important;
		border-radius: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .proj-perm-header {
		padding: 13px 0 !important;
	}

	body:is(.theme-light, .theme-dark) .proj-perm-header:hover {
		background: none !important;
	}

	body:is(.theme-light, .theme-dark) .proj-perm-name {
		font-family: var(--font-body) !important;
		font-weight: 700;
		font-size: 14px;
		letter-spacing: 0;
	}

	body:is(.theme-light, .theme-dark) .proj-perm-docs {
		padding: 8px 0 12px !important;
		border-top: none !important;
	}

	body:is(.theme-light, .theme-dark) .toggle-label {
		font-family: var(--font-body);
		font-weight: 500;
		color: var(--text);
	}
}

.role-editor-close {
	display: none;
}

/* ── Editor de roles ── */
@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #sec-access .roles-manager-grid {
		grid-template-columns: 1fr !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access #roles-manager-grid:not(.editor-hidden)::before {
		content: '';
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.5);
		z-index: 1200;
	}

	body:is(.theme-light, .theme-dark) #sec-access #roles-manager-grid:not(.editor-hidden) .roles-editor-pane {
		position: fixed !important;
		left: 0;
		right: 0;
		bottom: 0;
		top: auto;
		max-height: 90vh;
		overflow-y: auto;
		z-index: 1201;
		background: var(--surface) !important;
		border-radius: 20px 20px 0 0 !important;
		padding: 24px 24px calc(20px + env(safe-area-inset-bottom)) !important;
		box-shadow: 0 -8px 40px rgba(0, 0, 0, 0.28);
	}

	body:is(.theme-light, .theme-dark) .role-editor-close {
		display: flex !important;
		position: absolute;
		top: 18px;
		right: 20px;
		z-index: 2;
		width: 32px;
		height: 32px;
		border: none;
		background: none;
		color: var(--text-2);
		align-items: center;
		justify-content: center;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) .role-editor-close svg {
		width: 20px;
		height: 20px;
	}

	body:is(.theme-light, .theme-dark) .role-editor-title {
		font-family: var(--font-display) !important;
		font-size: 24px !important;
		letter-spacing: -0.3px !important;
		text-transform: uppercase;
		color: var(--text) !important;
		margin-bottom: 18px !important;
		padding-right: 36px;
	}

	body:is(.theme-light, .theme-dark) .role-editor-title span {
		color: var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) .role-perm-group-items {
		grid-template-columns: 1fr !important;
		background: none !important;
	}

	body:is(.theme-light, .theme-dark) .role-perm-item {
		background: transparent !important;
		border-bottom: var(--line-w) solid var(--line) !important;
	}

	body:is(.theme-light, .theme-dark) .role-perm-group {
		border-color: var(--line) !important;
	}

	body:is(.theme-light, .theme-dark) .role-editor-actions .am-btn {
		border-radius: var(--r-pill) !important;
	}
}

/* ── KI DESKTOP ── */

/* ── Barra lateral desktop ── */
@media (min-width: 769px) {
	body:is(.theme-light, .theme-dark) .sidebar {
		width: clamp(232px, 19vw, 300px) !important;
		background: var(--surface) !important;
		border-right: var(--line-w) solid var(--line) !important;
		box-shadow: none !important;
	}

	body:is(.theme-light, .theme-dark) .main {
		margin-left: clamp(232px, 19vw, 300px) !important;
	}

	body:is(.theme-light, .theme-dark) .sidebar::before {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .ki-logo-img {
		height: auto;
		padding: clamp(20px, 2vw, 30px) clamp(20px, 2vw, 30px) 8px;
		border-bottom: none;
	}

	body:is(.theme-light, .theme-dark) .sidebar-logo {
		height: clamp(38px, 3.2vw, 52px);
		width: auto;
	}

	body:is(.theme-light, .theme-dark) #menu-gear-btn {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .nav-items {
		gap: 4px !important;
		padding: clamp(16px, 1.6vw, 24px) clamp(20px, 2vw, 30px) 0 !important;
		overflow: visible;
	}

	body:is(.theme-light, .theme-dark) .nav-btn {
		height: auto !important;
		padding: clamp(6px, 0.6vw, 9px) 0 !important;
		background: none !important;
		border-radius: 0 !important;
		color: var(--text-2);
	}

	body:is(.theme-light, .theme-dark) .nav-btn:hover {
		background: none !important;
		color: var(--text);
	}

	body:is(.theme-light, .theme-dark) .nav-btn svg {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .nav-label {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(15px, 1.15vw, 20px) !important;
		letter-spacing: -0.2px !important;
		text-transform: uppercase;
		white-space: normal !important;
		overflow: visible !important;
		text-overflow: clip !important;
		line-height: 1.05 !important;
	}

	body:is(.theme-light, .theme-dark) .nav-btn.active {
		background: none !important;
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) .nav-btn.active::before {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .nav-btn.active .nav-label {
		color: var(--text) !important;
		display: inline-block;
		border-bottom: 3px solid var(--accent);
		padding-bottom: 3px;
		line-height: 0.95;
	}

	body:is(.theme-light, .theme-dark) .sidebar-bottom {
		margin-top: auto !important;
		flex-shrink: 0 !important;
		background: none !important;
		border-top: var(--line-w) solid var(--line) !important;
		padding: clamp(12px, 1.6vh, 20px) clamp(20px, 2vw, 30px) !important;
		gap: clamp(4px, 0.5vh, 8px) !important;
	}

	body:is(.theme-light, .theme-dark) .sidebar-bottom .nav-btn .nav-label {
		font-size: clamp(12px, 0.9vw, 15px) !important;
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) .sidebar-bottom .nav-btn:hover .nav-label {
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) .sidebar-bottom .nav-btn.active .nav-label {
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) .user-dot {
		padding: clamp(6px, 0.8vh, 10px) 0 !important;
		background: none !important;
		margin-top: 4px;
	}

	body:is(.theme-light, .theme-dark) .user-dot:hover {
		background: none !important;
	}

	body:is(.theme-light, .theme-dark) .user-dot-avatar {
		width: clamp(26px, 2vw, 34px);
		height: clamp(26px, 2vw, 34px);
		border-radius: 50%;
		font-family: var(--font-body);
		color: #fff;
	}

	body:is(.theme-light, .theme-dark) .nav-username {
		font-family: var(--font-body);
		font-weight: 700;
		color: var(--text);
		font-size: clamp(12px, 0.85vw, 14px);
	}

	body:is(.theme-light, .theme-dark) #sidebar-theme-btn {
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) .sidebar {
		overflow: hidden !important;
	}

	body:is(.theme-light, .theme-dark) .ki-logo-img {
		flex-shrink: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .nav-items {
		flex: 1 1 auto !important;
		min-height: 0 !important;
		overflow-y: auto !important;
		overscroll-behavior: contain;
	}
}

/* ── Conteúdo desktop ── */
@media (min-width: 769px) {
	body:is(.theme-light, .theme-dark) .section {
		padding: clamp(28px, 3vw, 48px) clamp(32px, 4.5vw, 64px) !important;
	}

	body:is(.theme-light, .theme-dark) .section>.topbar>.page-title {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .section>.topbar {
		background: none !important;
		border: none !important;
		border-bottom: var(--line-w) solid var(--line) !important;
		box-shadow: none !important;
		backdrop-filter: none !important;
		padding: 0 0 clamp(14px, 1.4vw, 20px) !important;
		margin: 0 0 clamp(10px, 1vw, 14px) !important;
		max-width: none;
		display: flex;
		align-items: center;
		gap: clamp(12px, 1.4vw, 20px);
	}

	body:is(.theme-light, .theme-dark) .section>.topbar .topbar-right {
		flex: 1;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding-right: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .section>.topbar .search {
		background: var(--bg-2) !important;
		border: none !important;
		border-radius: var(--r-pill) !important;
		padding: clamp(9px, 0.9vw, 12px) clamp(14px, 1.4vw, 18px) !important;
		font-family: var(--font-body) !important;
		font-size: clamp(12px, 0.85vw, 14px) !important;
		min-width: clamp(200px, 20vw, 320px);
	}

	body:is(.theme-light, .theme-dark) .section>.topbar .btn-accent {
		font-family: var(--font-body) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: clamp(11px, 0.8vw, 13px) !important;
		border-radius: var(--r-pill) !important;
		padding: clamp(9px, 0.9vw, 12px) clamp(16px, 1.6vw, 22px) !important;
	}

	body:is(.theme-light, .theme-dark) .hero-banner,
	body:is(.theme-light, .theme-dark) .section-subtitle,
	body:is(.theme-light, .theme-dark) .divider,
	body:is(.theme-light, .theme-dark) .inprog-grid,
	body:is(.theme-light, .theme-dark) .proj-grid,
	body:is(.theme-light, .theme-dark) .explore-grid,
	body:is(.theme-light, .theme-dark) .proj-list {
		max-width: none;
	}

	body:is(.theme-light, .theme-dark) .hero-banner {
		padding: clamp(6px, 0.8vw, 10px) 0 clamp(4px, 0.5vw, 8px) !important;
	}

	body:is(.theme-light, .theme-dark) .hero-logo-big {
		margin-top: clamp(6px, 0.8vw, 10px) !important;
		margin-bottom: clamp(24px, 3vw, 40px) !important;
	}

	body:is(.theme-light, .theme-dark) .hero-logo-big img {
		height: clamp(84px, 8vw, 128px) !important;
	}

	body.app-ki:is(.theme-light, .theme-dark) .hero-logo-big img {
		height: clamp(126px, 12vw, 192px) !important;
	}

	body:is(.theme-light, .theme-dark) .hero-eyebrow {
		font-size: clamp(11px, 0.8vw, 13px) !important;
		margin-bottom: clamp(10px, 1vw, 14px);
	}

	body:is(.theme-light, .theme-dark) .hero-banner p {
		max-width: clamp(600px, 64vw, 1240px) !important;
		font-size: clamp(14px, 0.6vw + 6px, 17px) !important;
		line-height: 1.5 !important;
	}

	body:is(.theme-light, .theme-dark) .hero-actions {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .inprog-grid,
	body:is(.theme-light, .theme-dark) .proj-grid {
		display: grid !important;
		grid-auto-flow: column !important;
		grid-auto-columns: clamp(200px, 17vw, 300px) !important;
		grid-template-columns: none !important;
		gap: clamp(14px, 1.4vw, 22px) !important;
		overflow-x: auto !important;
		overflow-y: hidden;
		scroll-snap-type: x proximity;
		scroll-padding-left: 16px;
		margin-top: -12px;
		margin-left: -16px;
		margin-right: -16px;
		padding: 12px 16px;
		background: none !important;
		border: none !important;

	}

	body:is(.theme-light, .theme-dark) .inprog-grid>*,
	body:is(.theme-light, .theme-dark) .proj-grid>* {
		scroll-snap-align: start;
	}

	body:is(.theme-light, .theme-dark) .inprog-grid::-webkit-scrollbar,
	body:is(.theme-light, .theme-dark) .proj-grid::-webkit-scrollbar {
		height: 6px;
	}

	body:is(.theme-light, .theme-dark) .inprog-grid::-webkit-scrollbar-thumb,
	body:is(.theme-light, .theme-dark) .proj-grid::-webkit-scrollbar-thumb {
		background: var(--line);
		border-radius: 3px;
	}

	body:is(.theme-light, .theme-dark) .inprog-grid::-webkit-scrollbar-track,
	body:is(.theme-light, .theme-dark) .proj-grid::-webkit-scrollbar-track {
		background: transparent;
	}

	body:is(.theme-light, .theme-dark) .explore-grid>* {
		scroll-snap-align: start;
	}

	body:is(.theme-light, .theme-dark) .explore-grid::-webkit-scrollbar {
		height: 6px;
	}

	body:is(.theme-light, .theme-dark) .explore-grid::-webkit-scrollbar-thumb {
		background: var(--line);
		border-radius: 3px;
	}

	body:is(.theme-light, .theme-dark) .explore-grid::-webkit-scrollbar-track {
		background: transparent;
	}

	body:is(.theme-light, .theme-dark) .proj-home-card {
		position: relative !important;
		overflow: hidden !important;
		background: var(--surface) !important;
		border: var(--line-w) solid var(--line) !important;
		border-radius: 8px !important;
		box-shadow: none !important;
		padding: 0 !important;
		margin: 0 !important;
		min-height: 0 !important;
		display: block !important;
		cursor: pointer;
		transition: box-shadow 0.15s, border-color 0.15s;
	}

	body:is(.theme-light, .theme-dark) .proj-home-card:hover {
		border-color: var(--text-3) !important;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
	}

	body:is(.theme-light, .theme-dark) .phc-cover {
		display: block !important;
		position: static !important;
		inset: auto !important;
		width: 100% !important;
		height: clamp(96px, 8vw, 140px) !important;
		margin: 0 !important;
		padding: 0 !important;
		background-size: cover !important;
		background-position: center !important;
	}

	body:is(.theme-light, .theme-dark) .phc-cover::after {
		content: none !important;
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .phc-initials,
	body:is(.theme-light, .theme-dark) .phc-logo,
	body:is(.theme-light, .theme-dark) .phc-live-dot {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .phc-body {
		position: static !important;
		z-index: auto;
		height: auto !important;
		min-height: 0 !important;
		display: block !important;
		padding: clamp(10px, 1vw, 16px) clamp(14px, 1.4vw, 20px) clamp(12px, 1.2vw, 18px) !important;
		box-sizing: border-box;
	}

	body:is(.theme-light, .theme-dark) .phc-date {
		font-family: var(--font-body);
		font-weight: 700;
		font-size: clamp(10px, 0.75vw, 12px);
		color: var(--text) !important;
		margin-bottom: 2px;
	}

	body:is(.theme-light, .theme-dark) .phc-client {
		font-family: var(--font-body);
		font-weight: 500;
		color: var(--text-2) !important;
		font-size: clamp(11px, 0.8vw, 13px);
		letter-spacing: 0.5px;
		text-transform: uppercase;
		margin-bottom: 2px;
	}

	body:is(.theme-light, .theme-dark) .phc-title {
		font-family: var(--font-display);
		font-weight: 700;
		font-size: clamp(14px, 1.05vw + 2px, 20px);
		line-height: 1.02;
		text-transform: uppercase;
		color: var(--text) !important;
		white-space: normal;
		margin-bottom: 3px;
	}

	body:is(.theme-light, .theme-dark) .phc-dir {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .phc-detail {
		font-family: var(--font-body);
		font-size: clamp(11px, 0.8vw, 13px);
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) .phc-progress,
	body:is(.theme-light, .theme-dark) .phc-edited,
	body:is(.theme-light, .theme-dark) .phc-done-badge,
	body:is(.theme-light, .theme-dark) .proj-dots-btn {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .section-subtitle,
	body:is(.theme-light, .theme-dark) .divider {
		display: block !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(11px, 0.75vw, 14px) !important;
		letter-spacing: 1.5px !important;
		color: var(--accent) !important;
		text-transform: uppercase;
		border: none !important;
		margin: clamp(28px, 3vw, 44px) 0 clamp(12px, 1.4vw, 20px) !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .section-subtitle span,
	body:is(.theme-light, .theme-dark) .divider span {
		color: var(--accent) !important;
		font-size: inherit !important;
		opacity: 1 !important;
		margin: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .section-subtitle::before,
	body:is(.theme-light, .theme-dark) .section-subtitle::after,
	body:is(.theme-light, .theme-dark) .divider::before,
	body:is(.theme-light, .theme-dark) .divider::after {
		content: none !important;
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .inprog-grid,
	body:is(.theme-light, .theme-dark) .proj-grid,
	body:is(.theme-light, .theme-dark) .explore-grid {
		border: none !important;
		background: none !important;
	}

	body:is(.theme-light, .theme-dark) .explore-grid {
		display: grid !important;
		grid-auto-flow: column !important;
		grid-auto-columns: clamp(200px, 17vw, 300px) !important;
		grid-template-columns: none !important;
		overflow-x: auto !important;
		overflow-y: hidden;
		scroll-snap-type: x proximity;
		scroll-padding-left: 16px;
		margin-top: -12px;
		margin-left: -16px;
		margin-right: -16px;
		padding: 12px 16px;

		gap: clamp(12px, 1.2vw, 18px) !important;
		align-items: stretch;
	}

	body:is(.theme-light, .theme-dark) .explore-card {
		position: relative !important;
		overflow: hidden !important;
		height: auto !important;
		min-height: 0 !important;
		display: flex !important;
		flex-direction: column !important;
		border: var(--line-w) solid var(--line) !important;
		border-radius: 8px !important;
		background: var(--surface) !important;
		box-shadow: none !important;
		cursor: pointer;
		transition: box-shadow 0.15s, border-color 0.15s;
	}

	body:is(.theme-light, .theme-dark) .explore-card:hover {
		border-color: var(--text-3) !important;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
	}

	body:is(.theme-light, .theme-dark) .explore-bg {
		position: static !important;
		inset: auto !important;
		width: 100%;
		height: clamp(96px, 8vw, 140px) !important;
		flex-shrink: 0;
		background-size: cover !important;
		background-position: center !important;
		font-size: 0 !important;
		filter: none !important;
	}

	body:is(.theme-light, .theme-dark) .explore-overlay {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) .explore-content {
		position: static !important;
		z-index: auto;
		height: auto;
		flex: 1;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		padding: clamp(10px, 1vw, 16px) clamp(14px, 1.4vw, 20px) clamp(12px, 1.2vw, 18px) !important;
	}

	body:is(.theme-light, .theme-dark) .explore-tag {
		font-family: var(--font-body) !important;
		font-weight: 500 !important;
		text-transform: uppercase;
		letter-spacing: 1px;
		font-size: clamp(9px, 0.65vw, 11px) !important;
		color: var(--text-2) !important;
		background: none !important;
		padding: 0 !important;
		margin-bottom: 2px;
	}

	body:is(.theme-light, .theme-dark) .explore-name {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		line-height: 1.03;
		font-size: clamp(14px, 1.05vw + 2px, 20px) !important;
		color: var(--text) !important;
		text-shadow: none !important;
	}

	/* ── Projetos desktop ── */
	body:is(.theme-light, .theme-dark) #sec-projects .filter-row {
		display: flex !important;
		flex-direction: row !important;
		align-items: baseline;
		gap: clamp(18px, 2vw, 30px) !important;
		margin: clamp(4px, 0.5vw, 8px) 0 clamp(18px, 1.8vw, 26px) !important;
		border: none !important;
		background: none !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-projects .filt {
		background: none !important;
		border: none !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		text-shadow: none !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: clamp(13px, 1vw, 16px) !important;
		color: var(--text-3) !important;
		padding: 0 0 4px !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) #sec-projects .filt:hover {
		color: var(--text-2) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-projects .filt.on {
		color: var(--text) !important;
		border-bottom: 3px solid var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) #proj-list {
		display: grid !important;
		grid-template-columns: repeat(auto-fill, minmax(clamp(200px, 17vw, 300px), 1fr)) !important;
		gap: clamp(14px, 1.4vw, 22px) !important;
		background: none !important;
		border: none !important;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row {
		display: block !important;
		background: var(--surface) !important;
		border: var(--line-w) solid var(--line) !important;
		border-left: var(--line-w) solid var(--line) !important;
		border-radius: 8px !important;
		overflow: hidden !important;
		padding: 0 !important;
		margin: 0 !important;
		cursor: pointer;
		box-shadow: none !important;
		transition: box-shadow 0.15s, border-color 0.15s;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row:hover {
		border-color: var(--text-3) !important;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row-icon {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row-meta {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row-cover {
		display: block !important;
		width: 100% !important;
		height: clamp(120px, 10vw, 170px) !important;
		margin: 0 !important;
		overflow: hidden;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row-cover img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row-info {
		padding: clamp(14px, 1.4vw, 20px) clamp(16px, 1.7vw, 24px) !important;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row-date {
		display: block !important;
		font-family: var(--font-body);
		font-weight: 700;
		font-size: clamp(10px, 0.75vw, 12px);
		color: var(--text) !important;
		margin-bottom: 2px;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row-client {
		display: block !important;
		font-family: var(--font-body);
		font-weight: 500;
		color: var(--text-2) !important;
		font-size: clamp(11px, 0.8vw, 13px);
		letter-spacing: 0.5px;
		text-transform: uppercase;
		margin-bottom: 2px;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row-name {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(14px, 1.05vw + 2px, 20px) !important;
		line-height: 1.02;
		text-transform: uppercase;
		color: var(--text) !important;
		white-space: normal;
		margin-bottom: 3px;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row-detail {
		display: block !important;
		font-family: var(--font-body);
		font-size: clamp(11px, 0.8vw, 13px);
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) #proj-list .proj-row .pbar-pct,
	body:is(.theme-light, .theme-dark) #proj-list .proj-row .pbar,
	body:is(.theme-light, .theme-dark) #proj-list .proj-row .tag {
		display: none !important;
	}

	/* ── Clientes desktop ── */
	body:is(.theme-light, .theme-dark) #clients-grid {
		display: grid !important;
		grid-template-columns: repeat(auto-fill, minmax(clamp(260px, 22vw, 380px), 1fr)) !important;
		gap: clamp(14px, 1.4vw, 22px) !important;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card {
		background: var(--surface) !important;
		border: var(--line-w) solid var(--line) !important;
		border-radius: 8px !important;
		box-shadow: none !important;
		overflow: hidden;
		padding: 0 !important;
		transition: box-shadow 0.15s, border-color 0.15s;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card:hover {
		border-color: var(--text-3) !important;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-banner {
		background: none !important;
		border-bottom: none !important;
		padding: clamp(16px, 1.6vw, 22px) clamp(16px, 1.7vw, 24px) 0 !important;
		display: flex;
		align-items: flex-start;
		gap: 10px;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-avatar {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-name {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(17px, 1.3vw + 2px, 23px) !important;
		text-transform: uppercase;
		color: var(--text) !important;
		line-height: 1.05;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-edit-btn {
		margin-left: auto;
		background: none !important;
		border: none !important;
		color: var(--text-3) !important;
		box-shadow: none !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-edit-btn:hover {
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-body {
		padding: 6px clamp(16px, 1.7vw, 24px) 0 !important;
		border: none !important;
		background: none !important;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-row {
		font-family: var(--font-body);
		color: var(--text-2) !important;
		font-size: clamp(12px, 0.85vw, 14px);
		border: none !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-row svg {
		color: var(--text-3);
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-footer {
		padding: 8px clamp(16px, 1.7vw, 24px) clamp(14px, 1.4vw, 20px) !important;
		border: none !important;
		background: none !important;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-projects {
		font-family: var(--font-body) !important;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: clamp(10px, 0.7vw, 12px) !important;
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-new {
		background: none !important;
		border: 1.5px dashed var(--line) !important;
		color: var(--text-3) !important;
		min-height: 120px;
	}

	body:is(.theme-light, .theme-dark) #clients-grid .client-card-new:hover {
		border-color: var(--accent) !important;
		color: var(--accent-text) !important;
		box-shadow: none !important;
	}

	/* ── Explore Lisbon desktop: listas ── */
	body:is(.theme-light, .theme-dark) #sec-lisbon-places .topbar-right,
	body:is(.theme-light, .theme-dark) #sec-lisbon-food .topbar-right,
	body:is(.theme-light, .theme-dark) #sec-lisbon-hotels .topbar-right {
		justify-content: flex-start !important;
		gap: clamp(18px, 2vw, 30px) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-lisbon-places .topbar-right .btn-accent,
	body:is(.theme-light, .theme-dark) #sec-lisbon-food .topbar-right .btn-accent,
	body:is(.theme-light, .theme-dark) #sec-lisbon-hotels .topbar-right .btn-accent {
		margin-left: auto;
	}

	body:is(.theme-light, .theme-dark) .cat-chip {
		background: none !important;
		border: none !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		min-height: 0 !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: clamp(13px, 1vw, 16px) !important;
		color: var(--text-3) !important;
		padding: 0 0 4px !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) .cat-chip:hover {
		color: var(--text-2) !important;
	}

	body:is(.theme-light, .theme-dark) .cat-chip.cat-on {
		background: none !important;
		color: var(--text) !important;
		border-bottom: 3px solid var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-lisbon-places .lisbon-hero,
	body:is(.theme-light, .theme-dark) #sec-lisbon-food .lisbon-hero,
	body:is(.theme-light, .theme-dark) #sec-lisbon-hotels .lisbon-hero {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #places-grid,
	body:is(.theme-light, .theme-dark) #food-grid,
	body:is(.theme-light, .theme-dark) #hotels-grid {
		display: grid !important;
		grid-template-columns: repeat(auto-fill, minmax(clamp(200px, 17vw, 300px), 1fr)) !important;
		gap: clamp(14px, 1.4vw, 22px) !important;
		background: none !important;
		border: none !important;
		margin-top: clamp(6px, 0.8vw, 12px);
	}

	body:is(.theme-light, .theme-dark) .place-card {
		display: flex !important;
		flex-direction: column !important;
		background: var(--surface) !important;
		border: var(--line-w) solid var(--line) !important;
		border-radius: 8px !important;
		overflow: hidden !important;
		padding: 0 !important;
		margin: 0 !important;
		height: auto !important;
		cursor: pointer;
		box-shadow: none !important;
		transition: box-shadow 0.15s, border-color 0.15s;
	}

	body:is(.theme-light, .theme-dark) .place-card:hover {
		border-color: var(--text-3) !important;
		box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
		transform: none !important;
	}

	body:is(.theme-light, .theme-dark) .place-thumb {
		width: 100% !important;
		height: clamp(120px, 10vw, 170px) !important;
		flex-shrink: 0;
		overflow: hidden;
		font-size: 0;
		background: var(--bg-3) !important;
		border: none !important;
	}

	body:is(.theme-light, .theme-dark) .place-body {
		display: flex !important;
		flex-direction: column !important;
		background: var(--surface) !important;
		border: none !important;
		padding: clamp(12px, 1.2vw, 18px) clamp(14px, 1.5vw, 20px) !important;
		flex: 1;
	}

	body:is(.theme-light, .theme-dark) .place-tag {
		order: 1 !important;
		background: none !important;
		border: none !important;
		border-radius: 0 !important;
		font-family: var(--font-body) !important;
		font-weight: 500 !important;
		text-transform: uppercase;
		letter-spacing: 1px;
		font-size: clamp(9px, 0.65vw, 11px) !important;
		color: var(--text-2) !important;
		padding: 0 !important;
		margin: 0 0 2px !important;
	}

	body:is(.theme-light, .theme-dark) .place-name {
		order: 2 !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		line-height: 1.05;
		font-size: clamp(15px, 1.1vw + 2px, 21px) !important;
		color: var(--text) !important;
		margin: 0 0 4px !important;
	}

	body:is(.theme-light, .theme-dark) .place-desc {
		order: 3 !important;
		font-family: var(--font-body) !important;
		font-size: clamp(11px, 0.8vw, 13px) !important;
		color: var(--text-3) !important;
		line-height: 1.5;
	}

	/* ── Explore Lisbon desktop: detalhe ── */
	body:is(.theme-light, .theme-dark) #sec-place-detail .lisbon-hero {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		grid-template-columns: none !important;
		gap: 0 !important;
		max-width: clamp(620px, 56vw, 940px);
		background: none !important;
		border: none !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .lisbon-hero::before {
		display: none !important;
		content: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .lisbon-hero>div {
		display: flex;
		flex-direction: column;
		padding: 0 !important;
		margin: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #place-detail-tag {
		order: 1;
		margin: 0 0 4px !important;
		background: none !important;
		padding: 0 !important;
		font-family: var(--font-body);
		color: var(--text-2) !important;
		text-transform: uppercase;
		font-size: clamp(10px, 0.75vw, 12px);
		letter-spacing: 1px;
	}

	body:is(.theme-light, .theme-dark) #place-detail-title {
		order: 2;
		margin: 0 0 clamp(14px, 1.4vw, 20px) !important;
		font-family: var(--font-display);
		font-weight: 700;
		font-size: clamp(28px, 2.4vw + 6px, 44px) !important;
		line-height: 1.02;
		text-transform: uppercase;
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) #place-detail-hero {
		order: 3;
		font-size: 0 !important;
		margin: 0 0 clamp(16px, 1.6vw, 24px) !important;
		height: clamp(260px, 26vw, 420px) !important;
		width: 100%;
		overflow: hidden;
		background: var(--bg-3);
		border-radius: 8px;
		display: block !important;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .place-detail-img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		display: block;
	}

	body:is(.theme-light, .theme-dark) #place-detail-desc {
		order: 4;
		margin: 0 0 clamp(20px, 2vw, 30px) !important;
		font-family: var(--font-body);
		color: var(--text-2) !important;
		font-size: clamp(13px, 0.95vw, 15px);
		line-height: 1.6;
		max-width: 72ch;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .lisbon-hero>div:last-child {
		order: 5;
		gap: clamp(12px, 1.2vw, 18px);
		align-items: flex-start !important;
		align-self: flex-start !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .bio-contact-item {
		display: flex;
		align-items: flex-start;
		gap: 10px;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .bio-contact-icon {
		color: var(--accent);
		flex-shrink: 0;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .bio-contact-icon svg {
		width: 16px;
		height: 16px;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .bio-contact-lbl {
		font-family: var(--font-body) !important;
		color: var(--accent-text) !important;
		font-size: clamp(10px, 0.75vw, 12px) !important;
		letter-spacing: 1px !important;
		text-transform: uppercase;
		font-weight: 700;
	}

	body:is(.theme-light, .theme-dark) #sec-place-detail .bio-contact-val {
		font-family: var(--font-body) !important;
		font-size: clamp(13px, 0.95vw, 15px) !important;
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) #place-back-btn {
		background: none !important;
		border: none !important;
		box-shadow: none !important;
		font-family: var(--font-body) !important;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: clamp(11px, 0.8vw, 13px) !important;
		color: var(--text-3) !important;
		padding: 0 !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) #place-back-btn:hover {
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) #place-maps-btn {
		font-family: var(--font-body) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		border-radius: var(--r-pill) !important;
		margin-top: clamp(10px, 1vw, 16px) !important;
		align-self: flex-start;
	}

	/* ── Bio desktop ── */
	body:is(.theme-light, .theme-dark) #sec-bio .page-title {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-hero {
		padding: 0 !important;
		max-width: none !important;
		background: none !important;
		border: none !important;
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) clamp(240px, 24vw, 360px);
		column-gap: clamp(48px, 7vw, 140px);
		align-items: start;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-hero::before {
		display: none !important;
		content: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-hero>* {
		grid-column: 1;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-logo {
		margin: clamp(4px, 0.5vw, 10px) 0 clamp(22px, 2.2vw, 36px);
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-logo img {
		height: clamp(126px, 12vw, 192px) !important;
		width: auto;
	}

	body.theme-light #sec-bio .bio-logo .logo-dark {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-tagline {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-hero p {
		font-family: var(--font-body);
		color: var(--text) !important;
		font-size: clamp(13px, 0.95vw, 15px);
		line-height: 1.6;
		margin: 0 0 clamp(12px, 1.1vw, 16px);
		max-width: 72ch;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-mission {
		font-style: normal;
		color: var(--text-2) !important;
		font-size: clamp(13px, 0.95vw, 15px) !important;
		border-left: none !important;
		padding-left: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-cta {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: clamp(22px, 2.2vw, 34px);
		grid-column: 2 !important;
		grid-row: 2 / span 4;
		align-self: start;
		margin: 0;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-cta-btns {
		display: flex;
		flex-direction: column;
		gap: clamp(9px, 0.8vw, 12px);
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-btn {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		background: var(--accent);
		color: #fff;
		font-family: var(--font-body);
		font-weight: 700;
		text-transform: uppercase;
		font-size: clamp(10px, 0.75vw, 12px);
		letter-spacing: 0.5px;
		padding: clamp(8px, 0.7vw, 10px) clamp(18px, 1.5vw, 24px);
		min-width: clamp(120px, 9vw, 140px);
		border-radius: var(--r-pill);
		text-decoration: none;
		transition: filter 0.15s;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-btn:hover {
		filter: brightness(0.95);
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-partof-lbl {
		font-family: var(--font-body);
		font-weight: 700;
		text-transform: uppercase;
		color: var(--text);
		font-size: clamp(10px, 0.75vw, 12px);
		letter-spacing: 0.5px;
		margin-bottom: 5px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-section {
		margin-top: clamp(40px, 4vw, 64px);
		border: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-section-title {
		font-family: var(--font-display);
		font-weight: 700;
		font-size: clamp(30px, 2vw + 14px, 44px);
		text-transform: uppercase;
		color: var(--text);
		letter-spacing: -0.5px;
		line-height: 1;
		margin: 0 0 clamp(22px, 2.2vw, 34px);
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-section--team {
		background: transparent !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-section--team .bio-team-list {
		background: var(--bg-2) !important;
		border-radius: 8px;
		padding: clamp(26px, 2.4vw, 38px) clamp(28px, 2.6vw, 42px) clamp(30px, 2.8vw, 44px);
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-section--contacts {
		background: transparent !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-team-list {
		display: grid !important;
		grid-template-columns: repeat(auto-fit, minmax(clamp(220px, 20vw, 320px), 1fr));
		gap: clamp(24px, 2.4vw, 40px);
		border: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-team-item {
		display: flex;
		flex-direction: column;
		background: transparent !important;
		border: none !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-team-role {
		order: 1;
		font-family: var(--font-body);
		font-weight: 400;
		text-transform: uppercase;
		color: var(--text);
		font-size: clamp(15px, 1.15vw, 19px);
		letter-spacing: 0.5px;
		margin-bottom: 2px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-team-name {
		order: 2;
		font-family: var(--font-display);
		font-weight: 700;
		text-transform: uppercase;
		color: var(--text-3);
		font-size: clamp(26px, 1.8vw + 10px, 38px);
		line-height: 0.98;
		margin-bottom: 3px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-team-email {
		order: 3;
		font-family: var(--font-body);
		font-weight: 700;
		color: var(--text) !important;
		font-size: clamp(12px, 0.9vw, 14px);
		text-decoration: none;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-map-full {
		height: clamp(220px, 20vw, 340px) !important;
		width: 100%;
		margin: 0 0 clamp(24px, 2.4vw, 36px) !important;
		background: var(--bg-3);
		border: none !important;
		border-radius: 8px;
		overflow: hidden;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-map-full iframe {
		border-radius: 8px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contacts-strip {
		display: grid !important;
		grid-template-columns: repeat(auto-fit, minmax(clamp(180px, 15vw, 250px), 1fr));
		gap: clamp(20px, 2vw, 36px);
		background: none !important;
		border: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contact-block {
		background: transparent !important;
		border: none !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contact-lbl {
		font-family: var(--font-body) !important;
		color: var(--accent) !important;
		font-size: clamp(10px, 0.75vw, 12px) !important;
		letter-spacing: 1px;
		text-transform: uppercase;
		font-weight: 700;
		margin-bottom: 3px;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contact-val {
		font-family: var(--font-body) !important;
		color: var(--text) !important;
		font-size: clamp(13px, 0.95vw, 15px) !important;
		font-weight: 700;
		line-height: 1.45;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contact-val a {
		color: var(--text) !important;
		text-decoration: none;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-contact-socials {
		grid-column: 1 / -1;
		margin-top: clamp(6px, 0.8vw, 12px);
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-socials {
		display: flex;
		gap: clamp(10px, 1vw, 14px);
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-social-link {
		width: clamp(38px, 2.8vw, 44px);
		height: clamp(38px, 2.8vw, 44px);
		border-radius: 50%;
		background: var(--text-3);
		color: #fff;
		display: flex;
		align-items: center;
		justify-content: center;
		transition: background 0.15s;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-social-link:hover,
	body:is(.theme-light, .theme-dark) #sec-bio .bio-social-link:focus-visible {
		background: color-mix(in srgb, var(--text-3) 45%, #000) !important;
		color: var(--accent) !important;
		border-color: transparent !important;
	}

	body:is(.theme-light, .theme-dark) #sec-bio .bio-social-link svg {
		width: clamp(17px, 1.3vw, 20px);
		height: clamp(17px, 1.3vw, 20px);
	}

	/* ── Detalhe do projeto desktop ── */
	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-cover {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-initials {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-hero-actions {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-info {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-meta {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .btn-outline {
		background: none !important;
		border: none !important;
		box-shadow: none !important;
		font-family: var(--font-body) !important;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: clamp(11px, 0.8vw, 13px) !important;
		color: var(--text-3) !important;
		padding: 0 !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .btn-outline:hover {
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-hero {
		background: none !important;
		border: none !important;
		padding: 0 !important;
		margin: clamp(4px, 0.5vw, 10px) 0 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-hero-inner {
		display: block !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-kicker {
		font-family: var(--font-body);
		font-weight: 400;
		text-transform: uppercase;
		color: var(--text);
		font-size: clamp(15px, 1.15vw, 19px);
		letter-spacing: 0.5px;
		margin-bottom: 2px;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-title {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(26px, 1.6vw + 10px, 40px) !important;
		line-height: 1 !important;
		text-transform: uppercase;
		color: var(--text) !important;
		letter-spacing: -0.5px;
		margin: 0 0 clamp(4px, 0.5vw, 8px) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-detail {
		font-family: var(--font-body);
		color: var(--text-2);
		font-size: clamp(13px, 0.95vw, 16px);
		font-weight: 400;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-docs-label {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail #proj-docs-grid {
		margin-top: clamp(32px, 3vw, 48px) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .divider-top {
		margin: 0 !important;
		border: none !important;
		padding: 0 0 clamp(16px, 1.5vw, 24px) !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(24px, 1.6vw + 8px, 34px) !important;
		text-transform: uppercase;
		color: var(--text) !important;
		letter-spacing: -0.3px !important;
		display: flex !important;
		align-items: center;
		justify-content: space-between;
		gap: 20px;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .proj-detail-actions {
		display: flex;
		gap: clamp(14px, 1.4vw, 22px);
		align-items: center;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail #pdf-empty {
		background: none !important;
		border: 1px dashed var(--line) !important;
		border-radius: 8px;
		color: var(--text-3) !important;
		font-family: var(--font-body);
		padding: clamp(28px, 2.6vw, 40px) !important;
		text-align: left;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail #pdf-viewer-wrap {
		border: var(--line-w) solid var(--line);
		border-radius: 8px;
		overflow: hidden;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .pdf-iframe {
		display: block;
		width: 100%;
		height: clamp(520px, 60vh, 900px);
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .prod-section-card {
		background: none !important;
		border: none !important;
		box-shadow: none !important;
		padding: 0 !important;
		margin: clamp(38px, 3.6vw, 56px) 0 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .prod-section-card-hdr {
		background: none !important;
		border: none !important;
		padding: 0 0 clamp(16px, 1.5vw, 24px) !important;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 20px;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .prod-section-card-title {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(24px, 1.6vw + 8px, 34px) !important;
		text-transform: uppercase;
		color: var(--text) !important;
		letter-spacing: -0.3px;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .prod-section-hdr-actions {
		display: flex;
		gap: clamp(14px, 1.4vw, 22px);
		align-items: center;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .prod-section-card-body {
		background: none !important;
		border: none !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-project-detail .prod-empty {
		background: none !important;
		color: var(--text-3) !important;
		font-family: var(--font-body);
	}

	/* ── Acessos desktop ── */
	body:is(.theme-light, .theme-dark) #sec-access .scope-chip {
		background: none !important;
		border: none !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		min-height: 0 !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: clamp(13px, 1vw, 16px) !important;
		color: var(--text-3) !important;
		padding: 0 0 4px !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) #sec-access .scope-chip:hover {
		color: var(--text-2) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .scope-chip.active {
		background: none !important;
		color: var(--text) !important;
		border-bottom: 3px solid var(--accent) !important;
		box-shadow: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-status-chips,
	body:is(.theme-light, .theme-dark) #sec-access .access-scope-chips {
		gap: clamp(18px, 2vw, 30px) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-list {
		border: none !important;
		background: none !important;
		margin-top: clamp(14px, 1.4vw, 22px);
		overflow: visible;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-row {
		background: transparent !important;
		border: none !important;
		border-bottom: var(--line-w) solid var(--line) !important;
		border-radius: 0 !important;
		padding: clamp(14px, 1.4vw, 20px) 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-row.is-super-admin {
		border-left: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-avatar {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-name {
		font-family: var(--font-display) !important;
		font-weight: 700;
		text-transform: uppercase;
		font-size: clamp(16px, 1.2vw, 20px);
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-username {
		font-family: var(--font-body);
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-role-badge {
		background: none !important;
		border: none !important;
		font-family: var(--font-body) !important;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 1px;
		color: var(--accent-text) !important;
		font-size: clamp(10px, 0.75vw, 12px) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .access-scope {
		font-family: var(--font-body) !important;
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .roles-manager {
		background: none !important;
		border: none !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .roles-manager-grid {
		background: none !important;
		border: none !important;
		gap: clamp(24px, 3vw, 48px) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .roles-list-pane,
	body:is(.theme-light, .theme-dark) #sec-access .roles-editor-pane {
		background: none !important;
		border: none !important;
		padding: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .role-template-list {
		gap: 0 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .role-template-item {
		background: transparent !important;
		border: none !important;
		border-bottom: var(--line-w) solid var(--line) !important;
		border-radius: 0 !important;
		padding: clamp(13px, 1.2vw, 18px) 0 !important;
		font-family: var(--font-body) !important;
		font-weight: 700;
		font-size: clamp(14px, 1vw, 16px);
		text-transform: uppercase;
		letter-spacing: 0.3px;
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .role-template-item.active {
		color: var(--accent-text) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .role-template-badge.system {
		background: none !important;
		border: none !important;
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .roles-list-header {
		padding: 0 0 8px !important;
		background: none !important;
	}

	/* ── Auditoria desktop ── */
	body:is(.theme-light, .theme-dark) #sec-audit .btn-outline {
		background: none !important;
		border: none !important;
		box-shadow: none !important;
		font-family: var(--font-body) !important;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: clamp(11px, 0.8vw, 13px) !important;
		color: var(--text-3) !important;
		padding: 0 !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) #sec-audit .btn-outline:hover {
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-audit .audit-tabs-row,
	body:is(.theme-light, .theme-dark) #sec-audit .scope-filter-row {
		display: flex;
		gap: clamp(18px, 2vw, 30px) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-audit .audit-main-tab,
	body:is(.theme-light, .theme-dark) #sec-audit .scope-chip {
		background: none !important;
		border: none !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		min-height: 0 !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: clamp(13px, 1vw, 16px) !important;
		color: var(--text-3) !important;
		padding: 0 0 4px !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) #sec-audit .audit-main-tab:hover,
	body:is(.theme-light, .theme-dark) #sec-audit .scope-chip:hover {
		color: var(--text-2) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-audit .audit-main-tab.active,
	body:is(.theme-light, .theme-dark) #sec-audit .scope-chip.active {
		background: none !important;
		color: var(--text) !important;
		border-bottom: 3px solid var(--accent) !important;
		box-shadow: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-audit .audit-select,
	body:is(.theme-light, .theme-dark) #sec-audit .audit-filter-bar input {
		background: var(--bg-2) !important;
		border: none !important;
		border-radius: var(--r-pill) !important;
		font-family: var(--font-body) !important;
		font-size: clamp(12px, 0.9vw, 14px) !important;
		color: var(--text) !important;
		padding: clamp(8px, 0.7vw, 10px) clamp(12px, 1.1vw, 16px) !important;
		box-shadow: inset 0 0 0 1px var(--field-ring) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-audit select.audit-select {
		appearance: none !important;
		-webkit-appearance: none !important;
		background: var(--field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555555' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 12px !important;
		padding-right: 36px !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) #sec-audit .audit-avatar {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-audit .audit-username {
		font-family: var(--font-body);
		color: var(--text-3) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-audit .audit-action-badge {
		font-family: var(--font-body) !important;
		font-weight: 700 !important;
		font-size: clamp(10px, 0.75vw, 12px) !important;
		letter-spacing: 0.3px;
		background: var(--bg-2) !important;
		border: none !important;
		border-radius: var(--r-pill) !important;
		color: var(--text-2) !important;
		padding: 4px 10px !important;
	}

	/* ── Definições desktop ── */
	body:is(.theme-light, .theme-dark) #sec-settings .settings-menu {
		display: flex;
		flex-direction: column;
		margin-top: clamp(6px, 0.8vw, 12px);
	}

	body:is(.theme-light, .theme-dark) #sec-settings .settings-item {
		background: none !important;
		border: none !important;
		border-bottom: var(--line-w) solid var(--line) !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		text-align: left;
		padding: clamp(16px, 1.5vw, 24px) 0 !important;
		cursor: pointer;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(20px, 1.4vw + 6px, 28px) !important;
		text-transform: uppercase;
		color: var(--text) !important;
		letter-spacing: -0.3px;
	}

	body:is(.theme-light, .theme-dark) #sec-settings .settings-item:hover {
		color: var(--accent-text) !important;
	}

	/* ── Perfil desktop ── */
	body:is(.theme-light, .theme-dark) #sec-profile .topbar .btn-outline {
		background: none !important;
		border: none !important;
		box-shadow: none !important;
		font-family: var(--font-body) !important;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: clamp(11px, 0.8vw, 13px) !important;
		color: var(--text-3) !important;
		padding: 0 !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .topbar .btn-outline:hover {
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .topbar .btn-outline[onclick*="doLogout"] {
		color: #c65a4e !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .topbar .btn-outline[onclick*="doLogout"]:hover {
		color: #a93226 !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .topbar-right {
		gap: clamp(18px, 2vw, 30px) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .prof-card {
		background: none !important;
		border: none !important;
		box-shadow: none !important;
		border-top: none !important;
		padding: 0 !important;
		text-align: left !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .prof-card::before {
		display: none !important;
		content: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .prof-av {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .prof-name {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(26px, 1.8vw + 10px, 38px) !important;
		text-transform: uppercase;
		color: var(--text) !important;
		line-height: 1;
		margin: 0 0 4px !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .prof-role {
		font-family: var(--font-body) !important;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 1px;
		color: var(--accent-text) !important;
		font-size: clamp(10px, 0.75vw, 12px) !important;
		margin: 0 0 clamp(16px, 1.5vw, 24px) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .info-lbl {
		font-family: var(--font-body) !important;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 1px;
		color: var(--accent) !important;
		font-size: clamp(10px, 0.75vw, 12px) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .info-val {
		font-family: var(--font-body) !important;
		color: var(--text) !important;
		font-weight: 700;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .sett-card {
		background: none !important;
		border: none !important;
		box-shadow: none !important;
		padding: 0 !important;
		margin-bottom: clamp(30px, 3vw, 46px) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .sett-hdr {
		background: none !important;
		border: none !important;
		padding: 0 0 clamp(14px, 1.3vw, 20px) !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(20px, 1.4vw + 6px, 28px) !important;
		text-transform: uppercase;
		color: var(--text) !important;
		letter-spacing: -0.3px !important;
	}

	body:is(.theme-light, .theme-dark) #sec-profile .sett-row {
		background: none !important;
		border: none !important;
		border-bottom: var(--line-w) solid var(--line) !important;
	}

	/* ── Lixo e arquivo desktop ── */
	body:is(.theme-light, .theme-dark) #sec-trash .archive-tabs,
	body:is(.theme-light, .theme-dark) #sec-trash .scope-filter-row {
		display: flex;
		gap: clamp(18px, 2vw, 30px) !important;
		border: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-trash .archive-tab,
	body:is(.theme-light, .theme-dark) #sec-trash .scope-chip {
		background: none !important;
		border: none !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		min-height: 0 !important;
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: clamp(13px, 1vw, 16px) !important;
		color: var(--text-3) !important;
		padding: 0 0 4px !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) #sec-trash .archive-tab:hover,
	body:is(.theme-light, .theme-dark) #sec-trash .scope-chip:hover {
		color: var(--text-2) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-trash .archive-tab.active,
	body:is(.theme-light, .theme-dark) #sec-trash .scope-chip.active {
		background: none !important;
		color: var(--text) !important;
		border-bottom: 3px solid var(--accent) !important;
		box-shadow: none !important;
	}

	body:is(.theme-light, .theme-dark) #sec-trash .trash-note {
		font-family: var(--font-body);
		color: var(--text-3) !important;
	}

	/* ── Modais desktop ── */
	body:is(.theme-light, .theme-dark) .modal-overlay,
	body:is(.theme-light, .theme-dark) .access-modal-overlay,
	body:is(.theme-light, .theme-dark) #ui-dialog-overlay {
		background: rgba(17, 17, 17, 0.45) !important;
		backdrop-filter: blur(3px) !important;
		padding: clamp(28px, 4vh, 52px) 20px !important;
	}

	body:is(.theme-light, .theme-dark) .modal,
	body:is(.theme-light, .theme-dark) .access-modal,
	body:is(.theme-light, .theme-dark) .ui-dialog {
		background: var(--surface) !important;
		border: var(--line-w) solid var(--line) !important;
		border-top: var(--line-w) solid var(--line) !important;
		border-radius: 12px !important;
		box-shadow: 0 24px 64px rgba(0, 0, 0, 0.18) !important;
		padding: clamp(26px, 2.4vw, 38px) clamp(28px, 2.6vw, 42px) !important;
	}

	body:is(.theme-light, .theme-dark) .modal-title,
	body:is(.theme-light, .theme-dark) .access-modal-title,
	body:is(.theme-light, .theme-dark) .ui-dialog-title {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(22px, 1.6vw + 6px, 30px) !important;
		letter-spacing: -0.3px !important;
		text-transform: uppercase;
		color: var(--text) !important;
		margin-bottom: clamp(18px, 1.7vw, 26px) !important;
	}

	body:is(.theme-light, .theme-dark) .modal-title span,
	body:is(.theme-light, .theme-dark) .access-modal-title span {
		color: var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) .am-field label {
		color: var(--text-2) !important;
		font-weight: 700 !important;
	}

	body:is(.theme-light, .theme-dark) .am-section-title,
	body:is(.theme-light, .theme-dark) .am-section-divider {
		font-family: var(--font-body) !important;
		font-size: 11px !important;
		font-weight: 700 !important;
		letter-spacing: 1px !important;
		text-transform: uppercase;
		color: var(--text-3) !important;
		opacity: 1 !important;
	}

	body:is(.theme-light, .theme-dark) .am-input {
		background: var(--field) !important;
		border: none !important;
		border-radius: var(--r-pill) !important;
		padding: 12px 18px !important;
		font-size: 13px !important;
		font-family: var(--font-body) !important;
		box-shadow: inset 0 0 0 1px var(--field-ring) !important;
		color: var(--text) !important;
		transition: box-shadow 0.15s, background 0.15s !important;
	}

	body:is(.theme-light, .theme-dark) .am-input:focus {
		background: var(--surface) !important;
		box-shadow: inset 0 0 0 1.5px var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) textarea.am-input {
		border-radius: 18px !important;
		min-height: 96px !important;
		padding: 14px 18px !important;
		line-height: 1.5 !important;
	}

	body:is(.theme-light, .theme-dark) select.am-input {
		appearance: none !important;
		-webkit-appearance: none !important;
		background: var(--field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555555' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center / 13px !important;
		padding-right: 42px !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) select.am-input:focus {
		background-color: var(--surface) !important;
	}

	body:is(.theme-light, .theme-dark) .am-input[type="color"] {
		border-radius: 10px !important;
		padding: 4px 8px !important;
	}

	body:is(.theme-light, .theme-dark) .modal .btn-outline,
	body:is(.theme-light, .theme-dark) .access-modal .btn-outline {
		background: none !important;
		border: 1.5px solid var(--line) !important;
		border-radius: var(--r-pill) !important;
		box-shadow: none !important;
		font-family: var(--font-body) !important;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 11px !important;
		color: var(--text-2) !important;
		padding: 9px 18px !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) .modal .btn-outline:hover,
	body:is(.theme-light, .theme-dark) .access-modal .btn-outline:hover {
		border-color: var(--text-3) !important;
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) .am-footer {
		gap: 10px !important;
	}

	body:is(.theme-light, .theme-dark) .am-btn {
		border-radius: var(--r-pill) !important;
		font-family: var(--font-body) !important;
		font-weight: 700 !important;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 12px !important;
		padding: 12px 24px !important;
	}

	body:is(.theme-light, .theme-dark) .am-btn-cancel {
		background: none !important;
		border: 1.5px solid var(--line) !important;
		color: var(--text-2) !important;
	}

	body:is(.theme-light, .theme-dark) .am-btn-cancel:hover {
		border-color: var(--text-3) !important;
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) .am-btn-save {
		background: var(--accent) !important;
		color: #fff !important;
		border: none !important;
	}

	body:is(.theme-light, .theme-dark) .am-btn-danger,
	body:is(.theme-light, .theme-dark) .am-btn-trash {
		background: none !important;
		border: 1.5px solid #d9776c !important;
		color: #c0392b !important;
	}

	body:is(.theme-light, .theme-dark) .toggle.on {
		background: rgba(242, 193, 24, 0.30) !important;
		border-color: var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) .toggle.on::after {
		background: var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) .am-password-display {
		background: var(--bg-2) !important;
		border: var(--line-w) solid var(--line) !important;
		border-radius: 8px !important;
	}

	body:is(.theme-light, .theme-dark) .am-password-value {
		color: var(--text) !important;
		font-weight: 700;
	}

	body:is(.theme-light, .theme-dark) .proj-perm-row {
		background: transparent !important;
		border: none !important;
		border-bottom: var(--line-w) solid var(--line) !important;
		border-radius: 0 !important;
	}

	body:is(.theme-light, .theme-dark) .proj-perm-header:hover {
		background: none !important;
	}

	body:is(.theme-light, .theme-dark) .proj-perm-name {
		font-family: var(--font-body) !important;
		font-weight: 700;
		letter-spacing: 0;
	}

	body:is(.theme-light, .theme-dark) .proj-perm-docs {
		border-top: none !important;
	}

	body:is(.theme-light, .theme-dark) .toggle-label {
		font-family: var(--font-body);
		color: var(--text);
	}

	body:is(.theme-light, .theme-dark) .role-editor-title {
		font-family: var(--font-display) !important;
		font-weight: 700 !important;
		font-size: clamp(22px, 1.6vw + 6px, 30px) !important;
		letter-spacing: -0.3px !important;
		text-transform: uppercase;
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) .role-editor-title span {
		color: var(--accent) !important;
	}

	body:is(.theme-light, .theme-dark) .role-perm-group {
		border-color: var(--line) !important;
	}

	body:is(.theme-light, .theme-dark) .role-perm-group-items {
		background: none !important;
	}

	body:is(.theme-light, .theme-dark) .role-perm-item {
		background: transparent !important;
		border-bottom: var(--line-w) solid var(--line) !important;
	}

	body:is(.theme-light, .theme-dark) .role-select-all-btn {
		background: none !important;
		border: none !important;
		font-family: var(--font-body) !important;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.5px;
		font-size: 11px !important;
		color: var(--text-3) !important;
		cursor: pointer;
	}

	body:is(.theme-light, .theme-dark) .role-select-all-btn:hover {
		color: var(--text) !important;
	}

	body:is(.theme-light, .theme-dark) .role-perm-group-label {
		font-family: var(--font-body) !important;
		font-weight: 700 !important;
		font-size: 11px !important;
		letter-spacing: 1px !important;
		text-transform: uppercase;
		color: var(--text-2) !important;
	}

	body:is(.theme-light, .theme-dark) .ui-dialog-message {
		font-family: var(--font-body);
		color: var(--text-2) !important;
	}

	body:is(.theme-light, .theme-dark) .ui-toast {
		background: var(--surface) !important;
		border: var(--line-w) solid var(--line) !important;
		border-radius: 10px !important;
		color: var(--text) !important;
		box-shadow: 0 10px 30px rgba(0, 0, 0, 0.14) !important;
		font-family: var(--font-body) !important;
	}

	body:is(.theme-light, .theme-dark) .support-chat-panel {
		background: var(--surface) !important;
		border: var(--line-w) solid var(--line) !important;
		border-radius: 14px !important;
		box-shadow: 0 18px 48px rgba(0, 0, 0, 0.2) !important;
	}

	body:is(.theme-light, .theme-dark) #login-overlay {
		align-items: center !important;
		padding-top: 20px !important;
	}

	body:is(.theme-light, .theme-dark) .login-brand {
		margin-bottom: clamp(36px, 4vh, 56px);
	}

	body:is(.theme-light, .theme-dark) .login-brand img {
		width: clamp(220px, 21vw, 336px) !important;
		height: auto !important;
		max-width: 100%;
	}

	body:is(.theme-light, .theme-dark) #support-help-fab {
		background: var(--accent) !important;
		border: none !important;
		box-shadow: 0 6px 20px rgba(242, 193, 24, 0.45) !important;
		color: #fff !important;
		padding: 0 !important;
		bottom: 26px !important;
		right: 26px !important;
		font-size: 0 !important;
		width: 52px !important;
		height: 52px !important;
		border-radius: 50% !important;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 0;
	}

	body:is(.theme-light, .theme-dark) #support-help-fab svg {
		width: 24px !important;
		height: 24px !important;
		stroke: #fff !important;
		stroke-width: 2 !important;
	}

	body:is(.theme-light, .theme-dark) #support-help-fab svg path:first-child {
		fill: none !important;
	}

	body:is(.theme-light, .theme-dark) #support-help-fab:hover {
		transform: translateY(-1px);
		box-shadow: 0 8px 24px rgba(242, 193, 24, 0.55) !important;
	}
}

/* ── Ajustes do tema escuro ── */
body.theme-dark .modal,
body.theme-dark .access-modal,
body.theme-dark .ui-dialog,
body.theme-dark .support-chat-panel {
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.55) !important;
}

body.theme-dark .login-field input {
	background: var(--field) !important;
	box-shadow: inset 0 0 0 1px var(--field-ring) !important;
	color: var(--text) !important;
}

body.theme-dark .login-field input:focus {
	background: #333333 !important;
	box-shadow: inset 0 0 0 1.5px var(--accent) !important;
}

body.theme-dark .login-submit-arrow {
	color: var(--text-2);
}

body.theme-dark #login-submit:hover .login-submit-arrow {
	color: var(--text);
}

body.theme-dark .am-input:focus {
	background: #333333 !important;
	box-shadow: inset 0 0 0 1.5px var(--accent) !important;
}

body.theme-dark select.am-input:focus {
	background-color: #333333 !important;
}

body.theme-dark select.am-input {
	background: var(--field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b5b2ab' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center / 13px !important;
}

body.theme-dark #sec-audit select.audit-select {
	background: var(--field) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b5b2ab' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 12px !important;
}

body.theme-dark .proj-home-card:hover,
body.theme-dark .place-card:hover {
	border-color: rgba(255, 255, 255, 0.25) !important;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5) !important;
}

/* ── Polimento ── */
body:is(.theme-light, .theme-dark) .audit-main-tab,
body:is(.theme-light, .theme-dark) .scope-chip,
body:is(.theme-light, .theme-dark) .archive-tab,
body:is(.theme-light, .theme-dark) .filt,
body:is(.theme-light, .theme-dark) .cat-chip,
body:is(.theme-light, .theme-dark) .kdd-btn,
body:is(.theme-light, .theme-dark) .btn,
body:is(.theme-light, .theme-dark) .am-btn {
	outline: none;
}

body:is(.theme-light, .theme-dark) .audit-main-tab:focus-visible,
body:is(.theme-light, .theme-dark) .scope-chip:focus-visible,
body:is(.theme-light, .theme-dark) .archive-tab:focus-visible,
body:is(.theme-light, .theme-dark) .filt:focus-visible,
body:is(.theme-light, .theme-dark) .cat-chip:focus-visible,
body:is(.theme-light, .theme-dark) .kdd-btn:focus-visible,
body:is(.theme-light, .theme-dark) .btn:focus-visible,
body:is(.theme-light, .theme-dark) .am-btn:focus-visible {
	outline: 2px solid var(--accent) !important;
	outline-offset: 3px;
	border-radius: 4px;
}

body:is(.theme-light, .theme-dark) .section-empty-state,
body:is(.theme-light, .theme-dark) .prod-empty,
body:is(.theme-light, .theme-dark) .csp-empty,
body:is(.theme-light, .theme-dark) .sessions-empty,
body:is(.theme-light, .theme-dark) .sessions-loading,
body:is(.theme-light, .theme-dark) .access-empty,
body:is(.theme-light, .theme-dark) .client-empty-state,
body:is(.theme-light, .theme-dark) .role-template-empty,
body:is(.theme-light, .theme-dark) .packet-doc-empty {
	grid-column: 1 / -1 !important;
	width: 100%;
	background: none !important;
	border: 1px dashed var(--line) !important;
	border-radius: 8px !important;
	font-family: var(--font-body) !important;
	font-style: normal !important;
	font-size: 13px !important;
	color: var(--text-3) !important;
	padding: clamp(20px, 2vw, 28px) !important;
	margin: 0 !important;
	text-align: left;
}

body:is(.theme-light, .theme-dark) .form-attach-toolbar .btn,
body:is(.theme-light, .theme-dark) .form-attach-toolbar .btn-outline,
body:is(.theme-light, .theme-dark) .form-attach-toolbar .btn-sm {
	background: none !important;
	border: 1.5px solid var(--line) !important;
	border-radius: var(--r-pill) !important;
	box-shadow: none !important;
	font-family: var(--font-body) !important;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-size: 11px !important;
	color: var(--text-2) !important;
	padding: 9px 18px !important;
	cursor: pointer;
}

body:is(.theme-light, .theme-dark) .form-attach-toolbar .btn:hover {
	border-color: var(--text-3) !important;
	color: var(--text) !important;
}

body:is(.theme-light, .theme-dark) .form-attach-name {
	font-family: var(--font-body) !important;
	font-size: 12px !important;
	color: var(--text-3) !important;
}

body:is(.theme-light, .theme-dark) input[list]::-webkit-calendar-picker-indicator {
	display: none !important;
}

body:is(.theme-light, .theme-dark) .audit-date-input {
	background: var(--field) !important;
	border: none !important;
	border-radius: var(--r-pill) !important;
	box-shadow: inset 0 0 0 1px var(--field-ring) !important;
	font-family: var(--font-body) !important;
	font-size: 12px !important;
	color: var(--text) !important;
	padding: 9px 14px !important;
	flex: 1;
	min-width: 140px;
}

body:is(.theme-light, .theme-dark) .audit-date-input:focus {
	box-shadow: inset 0 0 0 1.5px var(--accent) !important;
	border: none !important;
}

body:is(.theme-light, .theme-dark) .session-user-head,
body:is(.theme-light, .theme-dark) .sessions-user-card {
	background: var(--surface) !important;
	border: var(--line-w) solid var(--line) !important;
	border-radius: 10px !important;
}

body:is(.theme-light, .theme-dark) .session-user-count,
body:is(.theme-light, .theme-dark) .sessions-count-label {
	font-family: var(--font-body) !important;
	color: var(--text-3) !important;
}

body:is(.theme-light, .theme-dark) .session-current-badge,
body:is(.theme-light, .theme-dark) .session-terminate-all-btn {
	font-family: var(--font-body) !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-size: 10px !important;
	border-radius: var(--r-pill) !important;
}

body:is(.theme-light, .theme-dark) .sessions-table th,
body:is(.theme-light, .theme-dark) .session-rows-header,
body:is(.theme-light, .theme-dark) .session-rows-header span,
body:is(.theme-light, .theme-dark) .sessions-header-info,
body:is(.theme-light, .theme-dark) .session-role,
body:is(.theme-light, .theme-dark) .session-handle,
body:is(.theme-light, .theme-dark) .session-row-head {
	font-family: var(--font-body) !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 1px;
	font-size: 10px !important;
	color: var(--text-3) !important;
}

body:is(.theme-light, .theme-dark) .session-row.is-current {
	background: var(--accent-dim) !important;
}

/* ── Painel de suporte ── */
body:is(.theme-light, .theme-dark) .support-chat-panel {
	border-radius: 14px !important;
	overflow: hidden;
	background: var(--surface) !important;
	border: var(--line-w) solid var(--line) !important;
}

body:is(.theme-light, .theme-dark) .support-chat-head {
	background: none !important;
	border-bottom: var(--line-w) solid var(--line) !important;
	padding: 16px 20px !important;
}

body:is(.theme-light, .theme-dark) .support-chat-title {
	font-family: var(--font-display) !important;
	font-weight: 700 !important;
	font-size: 18px !important;
	letter-spacing: -0.2px !important;
	text-transform: uppercase;
	color: var(--text) !important;
}

body:is(.theme-light, .theme-dark) .support-chat-title span {
	color: var(--accent) !important;
}

body:is(.theme-light, .theme-dark) .support-chat-close {
	background: none !important;
	border: none !important;
	color: var(--text-3) !important;
	font-size: 20px !important;
	line-height: 1;
	cursor: pointer;
}

body:is(.theme-light, .theme-dark) .support-chat-close:hover {
	color: var(--text) !important;
}

body:is(.theme-light, .theme-dark) .support-chat-body {
	padding: 18px 20px 20px !important;
}

body:is(.theme-light, .theme-dark) .support-chat-copy {
	font-family: var(--font-body) !important;
	font-size: 13px !important;
	color: var(--text-2) !important;
	line-height: 1.55;
}

body:is(.theme-light, .theme-dark) .support-chat-label,
body:is(.theme-light, .theme-dark) .support-ticket-meta {
	font-family: var(--font-body) !important;
	font-weight: 700 !important;
	font-size: 11px !important;
	letter-spacing: 1px !important;
	text-transform: uppercase;
	color: var(--text-3) !important;
	border: none !important;
}

body:is(.theme-light, .theme-dark) .support-chat-input,
body:is(.theme-light, .theme-dark) .support-compose-input {
	background: var(--field) !important;
	border: none !important;
	border-radius: var(--r-pill) !important;
	box-shadow: inset 0 0 0 1px var(--field-ring) !important;
	font-family: var(--font-body) !important;
	font-size: 13px !important;
	color: var(--text) !important;
	padding: 11px 16px !important;
}

body:is(.theme-light, .theme-dark) .support-compose-input {
	border-radius: 16px !important;
	min-height: 72px;
	padding: 12px 16px !important;
}

body:is(.theme-light, .theme-dark) .support-chat-input:focus,
body:is(.theme-light, .theme-dark) .support-compose-input:focus {
	outline: none !important;
	background: var(--surface) !important;
	box-shadow: inset 0 0 0 1.5px var(--accent) !important;
}

body:is(.theme-light, .theme-dark) .support-chat-panel .btn-accent {
	border-radius: var(--r-pill) !important;
	font-family: var(--font-body) !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-size: 12px !important;
	padding: 11px 22px !important;
	color: var(--on-accent) !important;
	border: none !important;
}

body:is(.theme-light, .theme-dark) .support-chat-panel .btn-outline {
	background: none !important;
	border: 1.5px solid var(--line) !important;
	border-radius: var(--r-pill) !important;
	box-shadow: none !important;
	font-family: var(--font-body) !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-size: 11px !important;
	color: var(--text-2) !important;
	padding: 9px 18px !important;
}

body:is(.theme-light, .theme-dark) .support-chat-panel .btn-outline:hover {
	border-color: var(--text-3) !important;
	color: var(--text) !important;
}

body:is(.theme-light, .theme-dark) .support-chat-note,
body:is(.theme-light, .theme-dark) .support-attach-name {
	font-family: var(--font-body) !important;
	font-size: 12px !important;
	color: var(--text-3) !important;
}

body:is(.theme-light, .theme-dark) .support-msg,
body:is(.theme-light, .theme-dark) .support-message {
	font-family: var(--font-body) !important;
	font-size: 13px !important;
	border-radius: 14px !important;
	padding: 10px 14px !important;
	background: var(--field) !important;
	border: none !important;
	color: var(--text) !important;
}

body:is(.theme-light, .theme-dark) .support-msg {
	max-width: 92% !important;
}

body:is(.theme-light, .theme-dark) .support-messages {
	min-height: 240px !important;
	max-height: 340px !important;
}

body:is(.theme-light, .theme-dark) .support-msg.mine,
body:is(.theme-light, .theme-dark) .support-message.mine {
	background: var(--accent) !important;
	color: var(--on-accent) !important;
}

body:is(.theme-light, .theme-dark) .support-msg.mine :is(.support-msg-head, .support-msg-body, .support-msg-time) {
	color: var(--on-accent) !important;
}

body:is(.theme-light, .theme-dark) .support-msg.mine .support-msg-head {
	opacity: 0.75;
}

body:is(.theme-light, .theme-dark) .support-msg-time,
body:is(.theme-light, .theme-dark) .support-message-time {
	font-family: var(--font-body) !important;
	font-size: 10px !important;
	color: var(--text-3) !important;
}

/* ── Painel de suporte: anexos ── */
body:is(.theme-light, .theme-dark) .support-chat-panel {
	position: relative;
}

body:is(.theme-light, .theme-dark) .support-chat-body {
	overflow-y: auto;
}

body:is(.theme-light, .theme-dark) .support-chat-panel::after {
	content: attr(data-drop-label);
	position: absolute;
	inset: 8px;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1.5px dashed var(--accent);
	border-radius: 12px;
	background: color-mix(in srgb, var(--surface) 90%, transparent);
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 13px;
	color: var(--text);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.18s cubic-bezier(0.22, 1, 0.36, 1);
}

body:is(.theme-light, .theme-dark) .support-chat-panel.is-dragging::after {
	opacity: 1;
}

body:is(.theme-light, .theme-dark) .support-compose-toolbar {
	flex-wrap: wrap;
	min-width: 0;
}

body:is(.theme-light, .theme-dark) .support-attach-name {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body:is(.theme-light, .theme-dark) .support-attachments {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

body:is(.theme-light, .theme-dark) .support-attachments[hidden] {
	display: none;
}

body:is(.theme-light, .theme-dark) .support-chip {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	max-width: 100%;
	padding: 4px;
	border-radius: 12px;
	background: var(--field);
	box-shadow: inset 0 0 0 1px var(--field-ring);
}

body:is(.theme-light, .theme-dark) .support-chip-thumb,
body:is(.theme-light, .theme-dark) .support-chip-icon {
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	object-fit: cover;
}

body:is(.theme-light, .theme-dark) .support-chip-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--surface);
	color: var(--text-2);
}

body:is(.theme-light, .theme-dark) .support-chip-icon svg {
	width: 18px;
	height: 18px;
}

body:is(.theme-light, .theme-dark) .support-chip-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

body:is(.theme-light, .theme-dark) .support-chip-name {
	font-family: var(--font-body);
	font-size: 12px;
	color: var(--text);
	max-width: 150px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body:is(.theme-light, .theme-dark) .support-chip-size {
	font-family: var(--font-body);
	font-size: 10px;
	color: var(--text-3);
}

body:is(.theme-light, .theme-dark) .support-chip-remove {
	flex: none;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	font-size: 18px;
	line-height: 1;
	color: var(--text-3);
}

body:is(.theme-light, .theme-dark) .support-chip-remove:hover {
	background: var(--field-ring);
	color: var(--text);
}

body:is(.theme-light, .theme-dark) .support-chip-remove:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 1px;
}

body:is(.theme-light, .theme-dark) .support-msg-media-link {
	display: block;
	margin-top: 7px;
	padding: 0;
	max-width: 200px;
	background: none;
	border: var(--line-w) solid var(--line);
	border-radius: 10px;
	overflow: hidden;
	cursor: zoom-in;
}

body:is(.theme-light, .theme-dark) .support-msg-media-link:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

body:is(.theme-light, .theme-dark) .support-msg-file {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 7px;
	padding: 8px 10px;
	max-width: 100%;
	min-width: 0;
	border-radius: 10px;
	background: color-mix(in srgb, currentColor 8%, transparent);
	color: inherit;
	text-decoration: none;
}

body:is(.theme-light, .theme-dark) .support-msg.mine .support-msg-file {
	color: var(--on-accent);
}

body:is(.theme-light, .theme-dark) .support-msg-file:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

body:is(.theme-light, .theme-dark) .support-msg-file-icon {
	flex: none;
	display: flex;
}

body:is(.theme-light, .theme-dark) .support-msg-file-icon svg {
	width: 20px;
	height: 20px;
}

body:is(.theme-light, .theme-dark) .support-msg-file-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

body:is(.theme-light, .theme-dark) .support-msg-file-name {
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 700;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

body:is(.theme-light, .theme-dark) .support-msg-file-size {
	font-family: var(--font-body);
	font-size: 10px;
	opacity: 0.75;
}

body:is(.theme-light, .theme-dark) .support-viewer {
	position: fixed;
	inset: 0;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: calc(60px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(12px + env(safe-area-inset-left));
	background: rgba(0, 0, 0, 0.9);
	opacity: 0;
	transition: opacity 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}

body:is(.theme-light, .theme-dark) .support-viewer[hidden] {
	display: none;
}

body:is(.theme-light, .theme-dark) .support-viewer.open {
	opacity: 1;
}

body:is(.theme-light, .theme-dark) .support-viewer-img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	border-radius: 8px;
	transform: scale(0.97);
	transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}

body:is(.theme-light, .theme-dark) .support-viewer.open .support-viewer-img {
	transform: none;
}

body:is(.theme-light, .theme-dark) .support-viewer-bar {
	position: absolute;
	top: calc(10px + env(safe-area-inset-top));
	right: calc(10px + env(safe-area-inset-right));
	display: flex;
	gap: 8px;
}

body:is(.theme-light, .theme-dark) .support-viewer-bar :is(.support-viewer-close, .support-viewer-download) {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.14);
	border: none;
	padding: 0;
	cursor: pointer;
	color: #fff;
	font-size: 24px;
	line-height: 1;
	text-decoration: none;
}

body:is(.theme-light, .theme-dark) .support-viewer-bar :is(.support-viewer-close, .support-viewer-download):hover {
	background: rgba(255, 255, 255, 0.24);
}

body:is(.theme-light, .theme-dark) .support-viewer-bar :is(.support-viewer-close, .support-viewer-download):focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

body:is(.theme-light, .theme-dark) .support-viewer-download svg {
	width: 20px;
	height: 20px;
}

body:is(.theme-light, .theme-dark) #sec-profile .sett-row .btn-outline,
body:is(.theme-light, .theme-dark) #sec-profile .sett-row .btn {
	background: none !important;
	border: 1.5px solid var(--line) !important;
	border-radius: var(--r-pill) !important;
	box-shadow: none !important;
	font-family: var(--font-body) !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-size: 11px !important;
	color: var(--text-2) !important;
	padding: 9px 20px !important;
	white-space: nowrap;
	flex-shrink: 0;
	cursor: pointer;
}

body:is(.theme-light, .theme-dark) #sec-profile .sett-row .btn-outline:hover,
body:is(.theme-light, .theme-dark) #sec-profile .sett-row .btn:hover {
	border-color: var(--accent) !important;
	color: var(--accent-text) !important;
}

/* ── Prompt de instalação ── */
body:is(.theme-light, .theme-dark) #ios-install-prompt .iip-sheet {
	background: var(--surface) !important;
	border: var(--line-w) solid var(--line) !important;
	border-radius: 14px !important;
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.22) !important;
}

body:is(.theme-light, .theme-dark) #ios-install-prompt .iip-title {
	font-family: var(--font-display) !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: -0.2px;
	color: var(--text) !important;
}

body:is(.theme-light, .theme-dark) #ios-install-prompt .iip-body,
body:is(.theme-light, .theme-dark) #ios-install-prompt .iip-body p {
	font-family: var(--font-body) !important;
	color: var(--text-2) !important;
}

body:is(.theme-light, .theme-dark) #ios-install-prompt .iip-install-btn {
	background: var(--accent) !important;
	color: #fff !important;
	border: none !important;
	border-radius: var(--r-pill) !important;
	font-family: var(--font-body) !important;
	font-weight: 700 !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-size: 12px !important;
	padding: 12px 24px !important;
}

body:is(.theme-light, .theme-dark) #ios-install-prompt .iip-close {
	background: none !important;
	border: none !important;
	color: var(--text-3) !important;
}

body:is(.theme-light, .theme-dark) #ios-install-prompt .iip-icon {
	border: none !important;
	border-radius: 22.5% !important;
}

body:is(.theme-light, .theme-dark) #ios-install-prompt .iip-icon img {
	border-radius: 0;
	width: 100%;
	height: 100%;
}

@media (min-width: 769px) {
	body:is(.theme-light, .theme-dark) #ios-install-prompt[data-platform="desktop"] {
		align-items: center !important;
		justify-content: center !important;
		padding: 32px !important;
	}

	body:is(.theme-light, .theme-dark) #ios-install-prompt[data-platform="desktop"] .iip-sheet {
		max-width: 440px;
		width: 100%;
		text-align: center;
		padding: clamp(28px, 3vw, 40px) !important;
		border-radius: 14px !important;
		animation: none;
	}

	body:is(.theme-light, .theme-dark) #ios-install-prompt[data-platform="desktop"] .iip-install-btn {
		width: 100%;
		justify-content: center;
	}

	body:is(.theme-light, .theme-dark) #ios-install-prompt[data-platform="desktop"] .iip-arrow {
		display: none !important;
	}
}

html body:is(.theme-light, .theme-dark) #sec-project-detail:not(.section-mode) #proj-docs-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: clamp(10px, 1vw, 16px) !important;
}

html body:is(.theme-light, .theme-dark) #sec-project-detail #proj-docs-grid .ks-doc-card {
	padding: clamp(14px, 1.5vw, 24px) !important;
	gap: clamp(10px, 1vw, 14px) !important;
	min-height: clamp(104px, 9vw, 148px) !important;
	border-radius: 8px !important;
}

html body:is(.theme-light, .theme-dark) #sec-project-detail #proj-docs-grid .ks-doc-card .doc-name {
	font-family: 'Gotham', 'DM Sans', sans-serif !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}

@media (max-width: 768px) {
	html body:is(.theme-light, .theme-dark) #sec-project-detail:not(.section-mode) #proj-docs-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (min-width: 769px) and (max-width: 1100px) {
	html body:is(.theme-light, .theme-dark) #sec-project-detail:not(.section-mode) #proj-docs-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

#sec-audit .audit-table-wrap {
	container-type: inline-size;
}

@container (max-width: 1100px) {
	#sec-audit .audit-table thead {
		display: none;
	}

	#sec-audit .audit-table,
	#sec-audit .audit-table tbody {
		display: block;
		width: 100% !important;
		min-width: 0 !important;
	}

	#sec-audit .audit-table tr {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 6px 14px;
		grid-template-areas: "user action" "entity entity" "details details" "ts ts" "ip ip";
		padding: 14px 0;
		border-bottom: var(--line-w) solid var(--line);
	}

	#sec-audit .audit-table td {
		display: block;
		padding: 0 !important;
		border: 0 !important;
		width: auto !important;
		min-width: 0 !important;
		max-width: none !important;
		background: none !important;
	}

	#sec-audit .audit-table td[colspan] {
		grid-column: 1 / -1;
	}

	#sec-audit .audit-table td:nth-child(1) {
		grid-area: ts;
		font-size: 11px;
		color: var(--text-3);
	}

	#sec-audit .audit-table td:nth-child(2) {
		grid-area: user;
	}

	#sec-audit .audit-table td:nth-child(3) {
		grid-area: action;
		justify-self: end;
	}

	#sec-audit .audit-table td:nth-child(4) {
		grid-area: entity;
	}

	#sec-audit .audit-table td:nth-child(5) {
		grid-area: details;
		font-size: 12px;
		color: var(--text-3);
		white-space: normal !important;
		overflow: hidden;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow-wrap: anywhere;
	}

	#sec-audit .audit-table td:nth-child(6) {
		grid-area: ip;
		justify-self: stretch;
		font-size: 11px;
		color: var(--text-3);
		white-space: nowrap !important;
		overflow: hidden;
		text-overflow: ellipsis;
	}
}

@media (max-width: 768px) {

	body:is(.theme-light, .theme-dark) .kdd,
	body:is(.theme-light, .theme-dark) .kdd-btn {
		width: 100%;
	}
}

/* ── Lista vazia no modal de acesso ── */
body:is(.theme-light, .theme-dark) .client-admin-empty {
	border: 1px dashed var(--text-3);
	padding: 22px;
	text-align: center;
	color: var(--text-2);
	font-size: 13px;
}

/* ── Avisos ── */
body.theme-light {
	--toast-error: #B42318;
	--toast-success: #15803D;
	--toast-info: var(--text-3);
}

body.theme-dark {
	--toast-error: #FF8A80;
	--toast-success: #4ADE80;
	--toast-info: var(--text-3);
}

body:is(.theme-light, .theme-dark) #ui-toast-stack {
	top: auto !important;
	left: auto !important;
	right: max(26px, env(safe-area-inset-right)) !important;
	bottom: calc(94px + env(safe-area-inset-bottom)) !important;
	width: min(340px, calc(100vw - 52px)) !important;
	gap: 8px !important;
	pointer-events: none !important;
}

body:is(.theme-light, .theme-dark) .ui-toast {
	--toast-tone: var(--toast-info);
	display: flex;
	align-items: flex-start;
	gap: 10px;
	pointer-events: none !important;
	background: var(--surface) !important;
	color: var(--text) !important;
	border: var(--line-w) solid color-mix(in srgb, var(--toast-tone) 45%, var(--line)) !important;
	border-radius: 10px !important;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.14) !important;
	animation: ui-toast-in 0.24s cubic-bezier(0.16, 1, 0.3, 1) both !important;
}

body.theme-dark .ui-toast {
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5) !important;
}

body:is(.theme-light, .theme-dark) .ui-toast::before {
	content: "";
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	margin-top: 1px;
	background-color: var(--toast-tone);
	-webkit-mask: var(--toast-icon) no-repeat center / contain;
	mask: var(--toast-icon) no-repeat center / contain;
}

body:is(.theme-light, .theme-dark) .ui-toast {
	--toast-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 11v5.5M12 7.6v.1'/%3E%3C/svg%3E");
}

body:is(.theme-light, .theme-dark) .ui-toast.success {
	--toast-tone: var(--toast-success);
	--toast-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M8 12.3l2.7 2.7L16.2 9.4'/%3E%3C/svg%3E");
}

body:is(.theme-light, .theme-dark) .ui-toast.error {
	--toast-tone: var(--toast-error);
	--toast-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.2L21.5 20H2.5z'/%3E%3Cpath d='M12 9.6v4.6M12 17.2v.1'/%3E%3C/svg%3E");
	background: color-mix(in srgb, var(--toast-error) 7%, var(--surface)) !important;
}

@keyframes ui-toast-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) #ui-toast-stack {
		left: max(16px, env(safe-area-inset-left)) !important;
		right: max(16px, env(safe-area-inset-right)) !important;
		bottom: calc(100px + env(safe-area-inset-bottom)) !important;
		width: auto !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	body:is(.theme-light, .theme-dark) .ui-toast {
		animation: none !important;
	}
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

input[type="number"] {
	-moz-appearance: textfield;
	appearance: textfield;
}

body.theme-light ::-webkit-scrollbar-thumb {
	background: rgba(0, 0, 0, 0.14);
}

body.theme-light ::-webkit-scrollbar-thumb:hover {
	background: rgba(0, 0, 0, 0.26);
}

@supports not selector(::-webkit-scrollbar) {
	* {
		scrollbar-width: thin;
		scrollbar-color: rgba(255, 255, 255, 0.12) transparent;
	}

	body.theme-light * {
		scrollbar-color: rgba(0, 0, 0, 0.14) transparent;
	}
}

body.app-ki #ki-legacy-docs:not(.ks-fallback) {
	display: none !important;
}

#sec-project-detail #proj-docs-grid:not(.ks-ready) {
	visibility: hidden;
	animation: ks-grid-reveal 0s linear 4s forwards;
}

/* Projeto: a página só aparece quando o módulo das secções a desenhou (sem o desenho antigo por instantes) */
#sec-project-detail:not(.ks-ready)>* {
	visibility: hidden;
	animation: ks-grid-reveal 0s linear 4s forwards;
}

@keyframes ks-grid-reveal {
	to {
		visibility: visible;
	}
}

.k-ico {
	display: inline-block;
	width: 1em;
	height: 1em;
	vertical-align: -0.125em;
	flex-shrink: 0;
}

.access-crown .k-ico {
	vertical-align: -0.1em;
}

.kpwa-update {
	position: fixed;
	left: 50%;
	bottom: max(16px, env(safe-area-inset-bottom));
	transform: translateX(-50%);
	z-index: 10800;
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: calc(100vw - 32px);
	padding: 10px 10px 10px 18px;
	border-radius: 999px;
	background: var(--bg-1, #1c1c1c);
	color: var(--text, #f2f2f2);
	border: 1px solid var(--line, rgba(255, 255, 255, .14));
	box-shadow: 0 12px 40px rgba(0, 0, 0, .3);
	font-size: 13px;
}

.kpwa-update-btn {
	flex: none;
	padding: 8px 16px;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	background: var(--accent);
	color: #111;
	font: inherit;
	font-weight: 700;
	letter-spacing: .4px;
}

body.app-nac .kpwa-update-btn {
	color: #fff;
}

.kpwa-update>span {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (max-width: 768px) {
	.kpwa-update {
		left: 16px;
		right: 16px;
		transform: none;
		max-width: none;
		bottom: calc(max(16px, env(safe-area-inset-bottom)) + 66px);
		justify-content: space-between;
	}
}

img.k-img-broken {
	visibility: hidden;
}

/* ── Modais ajustados ao ecrã ── */
:root {
	--m-gap: clamp(8px, 2.5dvh, 32px);
	--m-px: clamp(16px, 2.6vw, 42px);
	--m-py: clamp(14px, 3.2dvh, 38px);
	--m-row: clamp(7px, 1.5dvh, 12px);
}

body:is(.theme-light, .theme-dark) .modal-overlay:not(.kx-editor) {
	bottom: auto;
	height: 100vh;
	height: 100dvh;
	align-items: center !important;
	overflow: hidden !important;
	padding: max(var(--m-gap), env(safe-area-inset-top)) max(clamp(10px, 2vw, 20px), env(safe-area-inset-right)) max(var(--m-gap), env(safe-area-inset-bottom)) max(clamp(10px, 2vw, 20px), env(safe-area-inset-left)) !important;
}

body:is(.theme-light, .theme-dark) .modal-overlay:not(.kx-editor)>.modal {
	display: flex !important;
	flex-direction: column;
	max-height: 100% !important;
	overflow-x: hidden;
	overflow-y: auto !important;
	padding: var(--m-py) var(--m-px) !important;
}

body:is(.theme-light, .theme-dark) .modal-overlay:not(.kx-editor)>.modal:has(> :is(.modal-body, .np-body)) {
	overflow-y: hidden !important;
}

body:is(.theme-light, .theme-dark) .modal> :is(.modal-title, .np-header, .am-footer) {
	flex: none;
}

body:is(.theme-light, .theme-dark) .modal>.modal-title,
body:is(.theme-light, .theme-dark) .np-header .modal-title {
	font-size: clamp(20px, 3.4dvh, 30px) !important;
}

body:is(.theme-light, .theme-dark) .modal>.modal-title {
	margin-bottom: clamp(8px, 1.6dvh, 22px) !important;
}

body:is(.theme-light, .theme-dark) .modal> :is(.modal-body, .np-body) {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;

}

body:is(.theme-light, .theme-dark) .modal>.modal-body {
	margin-inline: calc(-1 * var(--m-px));
	padding-inline: var(--m-px);
	padding-bottom: var(--m-row);
}

body:is(.theme-light, .theme-dark) .modal>.am-footer {
	margin-top: 0;
	padding-top: clamp(10px, 1.6dvh, 16px);
	border-top: var(--line-w) solid var(--line);
	flex-wrap: wrap;
}

body:is(.theme-light, .theme-dark) .modal .am-row {
	margin-bottom: var(--m-row);
}

body:is(.theme-light, .theme-dark) .modal .am-section {
	margin-bottom: clamp(12px, 2.4dvh, 22px);
}

body:is(.theme-light, .theme-dark) .modal .am-field label {
	margin-bottom: clamp(2px, 0.5dvh, 5px);
}

body:is(.theme-light, .theme-dark) .modal .am-input {
	padding-block: clamp(7px, 1.25dvh, 12px) !important;
}

body:is(.theme-light, .theme-dark) .modal textarea.am-input {
	min-height: clamp(64px, 11dvh, 96px) !important;
}

body:is(.theme-light, .theme-dark) .modal .am-btn {
	padding-block: clamp(8px, 1.4dvh, 12px) !important;
}

body:is(.theme-light, .theme-dark) .modal-overlay:not(.kx-editor)>.modal.np-modal {
	padding: 0 !important;
}

body:is(.theme-light, .theme-dark) .np-modal>.np-header {
	padding: var(--m-py) var(--m-px) clamp(10px, 2dvh, 20px);
}

body:is(.theme-light, .theme-dark) .np-header .modal-title {
	margin-bottom: 4px !important;
}

body:is(.theme-light, .theme-dark) .np-modal>.np-body {
	padding: clamp(12px, 2.4dvh, 24px) var(--m-px);
	gap: clamp(8px, 1.8dvh, 16px);
}

body:is(.theme-light, .theme-dark) .np-modal>.am-footer {
	padding: clamp(10px, 1.6dvh, 16px) var(--m-px) var(--m-py);
}

@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark):not(.nav-open) #mobile-topbar-actions {
		display: flex !important;
		margin-left: auto;
		align-items: center;
	}

	body:is(.theme-light, .theme-dark):not(.nav-open) #mobile-topbar-actions #mobile-theme-btn {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark).nav-open #mobile-action-btn {
		display: none !important;
	}

	body:is(.theme-light, .theme-dark) #mobile-action-btn {
		height: 34px;
		padding: 0 16px;
		border-radius: 999px;
		background: var(--accent);
		color: #141417;
		font-family: var(--font-display, 'Gotham', sans-serif);
		font-size: 12px;
		font-weight: 700;
		letter-spacing: .6px;
		text-transform: uppercase;
	}

	body.app-nac:is(.theme-light, .theme-dark) #mobile-action-btn {
		color: #fff;
	}

	/* KI: logo completo na barra, encostado à direita */
	body:is(.theme-light, .theme-dark) #mobile-topbar-logo {
		display: flex;
		align-items: center;
		flex-shrink: 0;
		min-height: 44px;
		margin-left: 14px;
	}

	body:is(.theme-light, .theme-dark) #mobile-topbar-logo img {
		height: 30px;
		width: auto;
	}

	body.theme-light #mobile-topbar-logo .logo-dark {
		display: none;
	}

	body:is(.theme-light, .theme-dark).nav-open #mobile-topbar-logo,
	body:is(.theme-light, .theme-dark):has(#sec-home.active, #sec-bio.active) #mobile-topbar-logo {
		visibility: hidden;
	}

	/* KI: logo K dentro do menu, por baixo do X */
	body.app-ki:is(.theme-light, .theme-dark).nav-open .ki-logo-img {
		display: flex;
		height: auto;
		padding: 0;
		margin: -12px 0 8px;
		border-bottom: none;
	}

	body.app-ki:is(.theme-light, .theme-dark).nav-open .ki-logo-img .sidebar-logo {
		height: 52px !important;
		width: auto !important;
	}
}

body:is(.theme-light, .theme-dark) select.am-input {
	-webkit-appearance: none;
	appearance: none;
}

@media (max-width: 480px) {
	body:is(.theme-light, .theme-dark) .modal>.am-footer {
		display: flex;
		gap: 8px;
	}

	body:is(.theme-light, .theme-dark) .modal>.am-footer>.am-btn {
		flex: 1 1 0;
		margin: 0 !important;
		min-width: 0;
	}

	body:is(.theme-light, .theme-dark) .modal>.am-footer>.am-btn-save {
		flex-basis: 100%;
		order: 2;
	}
}

#access-modal-overlay #am-proj-list>* {
	flex: none;
}

#access-modal-overlay #am-proj-section {
	margin-bottom: 0;
}

@media (max-width: 768px) {
	body:is(.theme-light, .theme-dark) .modal-overlay:not(.kx-editor) {
		align-items: flex-end !important;
		padding: max(12px, env(safe-area-inset-top)) 0 0 !important;
	}

	body:is(.theme-light, .theme-dark) .modal-overlay:not(.kx-editor)>.modal {
		border-radius: 20px 20px 0 0 !important;
		padding-bottom: max(var(--m-py), env(safe-area-inset-bottom)) !important;
	}

	body:is(.theme-light, .theme-dark) .np-modal>.am-footer {
		padding-bottom: max(var(--m-py), env(safe-area-inset-bottom));
	}

	body:is(.theme-light, .theme-dark) #sec-access #roles-manager-grid:not(.editor-hidden) .roles-editor-pane {
		display: flex;
		flex-direction: column;
		overflow: hidden !important;
		max-height: min(90dvh, calc(100dvh - 12px - env(safe-area-inset-top))) !important;
	}

	body:is(.theme-light, .theme-dark) #sec-access .roles-editor-pane>.modal-body {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	body:is(.theme-light, .theme-dark) #sec-access .roles-editor-pane> :is(.role-editor-title, .role-editor-actions) {
		flex: none;
	}
}

body:is(.theme-light, .theme-dark) #ui-dialog-overlay {
	height: 100vh;
	height: 100dvh;
	bottom: auto;
}

body:is(.theme-light, .theme-dark) .ui-dialog {
	display: flex;
	flex-direction: column;
	max-height: 100%;
}

.ui-dialog-message {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
}

.ui-dialog-title,
.ui-dialog-input,
.ui-dialog-actions {
	flex: none;
}

body:is(.theme-light, .theme-dark) #login-overlay {
	overflow-y: auto;
	align-items: safe center !important;
}

.iip-sheet {
	max-height: calc(100dvh - 24px);
	overflow-y: auto;
}

.support-chat-body {
	min-height: min(260px, 40dvh);
}

.shot-preview-box {
	display: flex;
	flex-direction: column;
	max-height: 100%;
}

.shot-preview-img {
	flex: 1 1 auto;
	min-height: 0;
	max-height: none;
}

/* Cronograma: o visualizador de PDF da app à altura do ecrã */
#cronograma-viewer>.kpdf {
	height: max(420px, calc(100dvh - 220px));
}

@media (max-width: 768px) {
	#cronograma-viewer>.kpdf {
		height: max(360px, calc(100dvh - 190px));
	}
}

/* ── Ícone das secções ── */
html body:is(.theme-light, .theme-dark) .doc-card .doc-icon {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: clamp(32px, 1vw + 22px, 40px) !important;
	height: clamp(32px, 1vw + 22px, 40px) !important;
	border-radius: 50% !important;
	background: var(--accent) !important;
	border: none !important;
	color: var(--surface) !important;
}

html body:is(.theme-light, .theme-dark) .doc-card .doc-icon svg {
	color: var(--surface) !important;
	stroke: var(--surface) !important;
}

/* ── Estados vazios da página inicial ── */
html body:is(.theme-light, .theme-dark) .proj-empty-home {
	background: none !important;
	border: var(--line-w) dashed var(--line) !important;
	border-radius: 8px !important;
	padding: clamp(20px, 2.4vw, 32px) 20px !important;
	text-align: center;
	color: var(--text-3);
}

html body:is(.theme-light, .theme-dark) .proj-empty-home .proj-empty-icon {
	font-size: 22px;
	line-height: 1;
	margin-bottom: 8px;
}

html body:is(.theme-light, .theme-dark) .proj-empty-state :is(.proj-empty-icon, .proj-empty-label) {
	opacity: 1 !important;
	color: var(--text-2) !important;
}

html body:is(.theme-light, .theme-dark) .proj-empty-home .proj-empty-label {
	font-family: var(--font-body);
	font-size: 14px;
	color: var(--text-2);
}

/* ── Sublinhado ao passar por cima ── */
html body:is(.theme-light, .theme-dark) :is(.phc-title, .proj-row-name, .explore-name, .place-name, .doc-name, .client-card-name):has(> .hover-line) {
	line-height: 1.4 !important;
	line-height: round(1.4em, 1px) !important;
	overflow: visible !important;
}

.hover-line {
	background-image: linear-gradient(to top, color-mix(in srgb, var(--accent) 50%, transparent) 2px, transparent 2px);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0 100%;
	padding-bottom: 4px;
	-webkit-box-decoration-break: slice;
	box-decoration-break: slice;
	transition: background-size 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}

@media (hover: hover) {

	.proj-home-card:hover .hover-line,
	.proj-row:hover .hover-line,
	.explore-card:hover .hover-line,
	.place-card:hover .hover-line,
	.doc-card:hover .hover-line,
	.client-card:hover .hover-line {
		background-size: 100% 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.hover-line {
		transition: none;
	}
}

/* ── Seta de voltar só no telemóvel ── */
@media (min-width: 769px) {
	#mobile-back-btn {
		display: none !important;
	}
}

/* ── Barra lateral com as linhas originais ── */
body.theme-light .sidebar {
	--line: rgba(0, 0, 0, 0.08);
	--line-w: 1px;
}

body.theme-dark .sidebar {
	--line: rgba(255, 255, 255, 0.10);
	--line-w: 1px;
}

/* ── Detalhe do Explore alinhado no telemóvel ── */
@media (max-width: 768px) {
	html body:is(.theme-light, .theme-dark) #sec-place-detail #mobile-back-btn+div {
		display: flex;
		justify-content: flex-end;
		align-items: center;
		min-height: 44px;
		margin: -48px 0 12px !important;
		padding: 0 !important;
	}

	html body:is(.theme-light, .theme-dark) #place-detail-tag {
		padding: 0 !important;
	}

	html body:is(.theme-light, .theme-dark) #sec-place-detail .lisbon-hero>div {
		padding-left: 0 !important;
		padding-right: 0 !important;
		margin-left: 0 !important;
	}
}

@media (max-width: 768px) {

	html body:is(.theme-light, .theme-dark) #sec-place-detail :has(> .bio-contact-item),
	html body:is(.theme-light, .theme-dark) #sec-place-detail .bio-contact-item {
		margin-left: 0 !important;
		padding-left: 0 !important;
	}
}

/* ── Modelos de role no editor ── */
html body:is(.theme-light, .theme-dark) .role-start-from {
	margin-bottom: 16px;
}

html body:is(.theme-light, .theme-dark) .role-start-from[hidden] {
	display: none !important;
}

html body:is(.theme-light, .theme-dark) .role-start-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

html body:is(.theme-light, .theme-dark) .role-start-chip {
	min-height: 40px;
	padding: 0 16px;
	border-radius: var(--r-pill);
	background: var(--bg-2);
	color: var(--text-2);
	border: none;
	box-shadow: inset 0 0 0 var(--line-w) var(--line);
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: box-shadow 0.15s ease, color 0.15s ease;
}

@media (hover: hover) {
	html body:is(.theme-light, .theme-dark) .role-start-chip:hover {
		box-shadow: inset 0 0 0 1px var(--text-3);
		color: var(--text);
	}
}

html body:is(.theme-light, .theme-dark) .role-start-chip.is-on {
	box-shadow: inset 0 0 0 2px var(--accent);
	color: var(--text);
}

html body:is(.theme-light, .theme-dark) .role-start-chip:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

/* ── Acesso do cliente nas definições do projeto ── */
html body:is(.theme-light, .theme-dark) .ps-portal-row {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 14px;
	min-width: 0;
	padding: 16px 18px;
	background: var(--bg-2);
	border: none;
	border-radius: 12px;
	box-shadow: inset 0 0 0 var(--line-w) var(--line);
}

html body:is(.theme-light, .theme-dark) .ps-portal-info {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	min-width: 0;
}

html body:is(.theme-light, .theme-dark) .ps-portal-username {
	font-family: var(--font-body);
	font-size: 15px;
	font-weight: 700;
	color: var(--text);
	overflow-wrap: anywhere;
}

html body:is(.theme-light, .theme-dark) .ps-portal-info .tag {
	font-family: var(--font-body);
}

html body:is(.theme-light, .theme-dark) .ps-portal-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	min-width: 0;
}

html body:is(.theme-light, .theme-dark) .ps-chg-pw-label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-body);
	font-size: 13px;
	color: var(--text-2);
}

html body:is(.theme-light, .theme-dark) .ps-portal-actions .btn {
	white-space: nowrap;
}

html body:is(.theme-light, .theme-dark) .ps-portal-actions .btn:last-child {
	margin-left: auto;
}

html body:is(.theme-light, .theme-dark) #project-settings-overlay .modal {
	overflow-x: hidden;
}

@media (max-width: 768px) {
	html body:is(.theme-light, .theme-dark) .ps-portal-actions {
		flex-direction: column;
		align-items: stretch;
	}

	html body:is(.theme-light, .theme-dark) .ps-portal-actions .btn {
		width: 100%;
		justify-content: center;
		margin-left: 0;
	}
}

/* ── Imagem atual nas definições do projeto ── */
html body:is(.theme-light, .theme-dark) .ps-img-preview {
	position: relative;
	width: min(100%, 320px);
	margin-bottom: 10px;
}

html body:is(.theme-light, .theme-dark) .ps-img-preview img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 10px;
	border: none;
	box-shadow: inset 0 0 0 var(--line-w) var(--line);
	background: var(--bg-3);
}

html body:is(.theme-light, .theme-dark) .ps-img-remove {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 32px;
	height: 32px;
	border: none;
	background: rgba(12, 12, 12, 0.65);
	color: #fff;
	font-size: 14px;
}

html body:is(.theme-light, .theme-dark) .ps-img-remove:hover {
	background: rgba(12, 12, 12, 0.85);
	color: #fff;
}

/* ── Home: grelha vazia sem espaço ── */
html body:is(.theme-light, .theme-dark) #sec-home :is(.inprog-grid, .proj-grid, .explore-grid):empty {
	display: none !important;
}

/* ── Tipo e realizador sem cortes a meio ── */
html body:is(.theme-light, .theme-dark) :is(.phc-detail, .proj-row-detail, .proj-detail-detail) {
	overflow: hidden;
}

.meta-type,
.meta-dir {
	--meta-gap: 0.55em;
	display: inline-block;
	max-width: 100%;
	vertical-align: top;
	overflow-wrap: anywhere;
}

.meta-type {
	margin-right: calc(var(--meta-gap) * 2);
}

.meta-dir {
	position: relative;
	margin-left: calc(var(--meta-gap) * -1);
	padding-left: var(--meta-gap);
}

.meta-dir::before {
	content: "|";
	position: absolute;
	left: calc(var(--meta-gap) * -0.3);
}

html body:is(.theme-light, .theme-dark) #sec-project-detail #proj-docs-grid .ks-doc-card:has(.ks-card-gear) {
	padding-bottom: 42px !important;
}

/* ── Títulos das listas da página inicial ── */
html body:is(.theme-light, .theme-dark) #sec-home :is(.section-subtitle, .divider) {
	display: flex !important;
	align-items: baseline;
	gap: 0 !important;
}

html body:is(.theme-light, .theme-dark) #sec-home :is(.section-subtitle, .divider) span {
	margin-left: 0.4em !important;
}

html body:is(.theme-light, .theme-dark) #sec-home :is(.section-subtitle, .divider)::after {
	content: "" !important;
	display: block !important;
	flex: 1;
	height: 1px;
	margin-left: 16px;
	background: color-mix(in srgb, var(--accent) 30%, transparent);
}

/* ── Interruptores da grelha de permissões ── */
html body:is(.theme-light, .theme-dark) .role-perm-item {
	display: flex !important;
	align-items: center;
	gap: 10px;
}

html body:is(.theme-light, .theme-dark) .role-perm-item input[type="checkbox"] {
	-webkit-appearance: none;
	appearance: none;
	position: relative;
	flex-shrink: 0;
	width: 38px !important;
	height: 22px !important;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	background: var(--bg-4);
	transition: background-color 0.18s;
}

html body:is(.theme-light, .theme-dark) .role-perm-item input[type="checkbox"]::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
	transition: transform 0.18s cubic-bezier(0.22, 1, 0.36, 1);
}

html body:is(.theme-light, .theme-dark) .role-perm-item input[type="checkbox"]:checked {
	background: var(--accent);
}

html body:is(.theme-light, .theme-dark) .role-perm-item input[type="checkbox"]:checked::before {
	transform: translateX(16px);
}

html body:is(.theme-light, .theme-dark) .role-perm-item input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 2px;
}

/* ── Edit Access: perfil por projeto ── */
body:is(.theme-light, .theme-dark) .am-proj-role {
	display: grid;
	gap: 8px;
	max-width: 420px;
	margin: 4px 0 18px;
}

body:is(.theme-light, .theme-dark) .am-proj-role > label {
	font-family: var(--font-body);
	font-size: 12px;
	color: var(--text-3);
}

body:is(.theme-light, .theme-dark) .am-proj-role-tag {
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 600;
	color: var(--text);
	padding: 2px 10px;
	border: var(--line-w) solid var(--line);
	border-radius: var(--r-pill);
	white-space: nowrap;
	flex-shrink: 0;
}

body:is(.theme-light, .theme-dark) .am-proj-role-tag:empty {
	display: none;
}
