/* Is there a better way to make it detect mobile? who knows!*/
@media (max-width: 900px) {
	body {
		display: block;
		margin: 0;
		height: 100vh;
		overflow: hidden;
		background-color: #121212;
	}

	body.mobile-pane-open {
		overflow: hidden;
	}

	.container {
		position: relative;
		width: 100%;
		height: 100%;
		display: block;
		background-color: #1e1e1e;
	}

	.left-pane {
		width: 100%;
		height: 100%;
		border-right: none;
		border-bottom: 1px solid #2a2a2a;
		box-sizing: border-box;
		padding: calc(16px + env(safe-area-inset-top, 0px)) 18px calc(20px + env(safe-area-inset-bottom, 0px));
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}

	#primitive-list {
		padding-bottom: calc(48px + env(safe-area-inset-bottom, 0px));
	}

	#primitive-list li {
		border: 1px solid transparent;
		border-radius: 12px;
		padding: 14px 16px;
		margin-bottom: 10px;
		font-size: 16px;
		line-height: 1.4;
		transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
		display: flex;
		align-items: center;
		gap: 12px;
	}

	#primitive-list li::after {
		content: '\203A';
		font-size: 20px;
		color: #3c9dd8;
		margin-left: auto;
	}

	#primitive-list li.pinned {
		position: sticky;
		top: calc(-6px - env(safe-area-inset-top, 0px));
		background: #1e1e1e;
		border-color: #2a2a2a;
		z-index: 1;
	}

	#primitive-list li.selected {
		border-color: #2d76c6;
		background: rgba(45, 118, 198, 0.18);
	}

	#primitive-list li:active {
		transform: scale(0.99);
	}

	#primitive-list li:focus-visible {
		outline: 2px solid #9cdcfe;
		outline-offset: 2px;
	}

	.right-pane {
		position: absolute;
		inset: 0;
		width: 100%;
		box-sizing: border-box;
		padding: calc(16px + env(safe-area-inset-top, 0px)) 18px calc(32px + env(safe-area-inset-bottom, 0px));
		background: #181818;
		transform: translateX(100%);
		transition: transform 0.35s ease;
		display: flex;
		flex-direction: column;
		gap: 16px;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		box-shadow: -18px 0 32px rgba(0, 0, 0, 0.45);
		border-left: 1px solid #242424;
		z-index: 5;
	}

	.right-pane.is-open {
		transform: translateX(0);
	}

	.right-pane[aria-hidden="true"] {
		visibility: hidden;
		pointer-events: none;
	}

	@media (prefers-reduced-motion: reduce) {
		.right-pane {
			transition: none;
		}
	}

	.mobile-top-bar {
		position: sticky;
		top: calc(-16px - env(safe-area-inset-top, 0px));
		margin: calc(-16px - env(safe-area-inset-top, 0px)) -18px 6px;
		padding: calc(16px + env(safe-area-inset-top, 0px)) 18px 12px;
		background: linear-gradient(180deg, rgba(24, 24, 24, 0.96), rgba(24, 24, 24, 0.85));
		display: flex;
		align-items: center;
		gap: 14px;
		border-bottom: 1px solid #2a2a2a;
		z-index: 3;
	}

	.mobile-back-button {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		padding: 9px 16px;
		border-radius: 999px;
		border: 1px solid rgba(86, 156, 214, 0.6);
		background: rgba(38, 38, 38, 0.85);
		color: #9cdcfe;
		font-size: 15px;
		font-weight: 600;
		cursor: pointer;
		transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	}

	.mobile-back-button:hover {
		background: rgba(60, 60, 60, 0.9);
		border-color: #569cd6;
	}

	.mobile-back-button:focus-visible {
		outline: 2px solid #9cdcfe;
		outline-offset: 3px;
	}

	.mobile-back-icon {
		position: relative;
		width: 16px;
		height: 12px;
		flex-shrink: 0;
	}

	.mobile-back-icon::before {
		content: '';
		position: absolute;
		left: 0;
		top: -1px;
		border-top: 7px solid transparent;
		border-bottom: 7px solid transparent;
		border-right: 10px solid currentColor;
	}

	.mobile-back-icon::after {
		content: '';
		position: absolute;
		left: 6px;
		top: 3px;
		width: 14px;
		height: 3px;
		background: currentColor;
		border-radius: 1px;
	}

	.mobile-back-label {
		letter-spacing: 0.02em;
	}

	.mobile-pane-title {
		flex: 1;
		min-width: 0;
		font-size: 16px;
		font-weight: 600;
		color: #e5e7eb;
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
	}

	#details,
	#readme-view {
		flex: 1;
		min-height: 0;
	}

	#details p {
		font-size: 14px;
		margin: 0 0 8px;
	}

	#primitive-image {
		width: 100%;
		max-height: 260px;
		object-fit: contain;
		border-radius: 12px;
		background: #101010;
		margin: 12px 0;
	}

	#specifications,
	#etymology-data {
		max-width: none;
		width: 100%;
		font-size: 13px;
		line-height: 1.5;
	}

	#specifications code,
	#etymology-data code {
		font-size: 12px;
	}

	#stl-actions {
		position: sticky;
		bottom: 0;
		padding: 12px 0 0;
		background: linear-gradient(180deg, rgba(24, 24, 24, 0), rgba(24, 24, 24, 0.94) 55%);
	}

	.btn-pill {
		width: 100%;
		justify-content: center;
		text-align: center;
		font-size: 15px;
		padding: 10px 16px;
	}

	#search-dialog {
		position: fixed;
		left: 0;
		right: 0;
		top: 0;
		bottom: auto;
		transform: none;
		width: 100%;
		display: flex;
		flex-direction: column;
		gap: 8px;
		padding: calc(18px + env(safe-area-inset-top, 0px)) calc(18px + env(safe-area-inset-right, 0px)) calc(14px + env(safe-area-inset-bottom, 0px)) calc(18px + env(safe-area-inset-left, 0px));
		background: rgba(24, 24, 24, 0.96);
		border-radius: 0 0 18px 18px;
		border: 1px solid #2a2a2a;
		border-top: none;
		box-sizing: border-box;
		box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45);
		z-index: 80;
		backdrop-filter: blur(6px);
		-webkit-backdrop-filter: blur(6px);
	}

	#search-input {
		width: 100%;
		padding: 12px 14px;
		font-size: 16px;
		border-radius: 12px;
		border: 1px solid #313131;
		background: #151515;
		color: #f5f5f5;
		box-sizing: border-box;
		min-height: 48px;
	}
	#search-meta {
		font-size: 13px;
		color: #9aa0a6;
		line-height: 1.3;
		word-break: break-word;
	}

	#search-input::placeholder {
		color: #7c7c7c;
	}

	.mobile-search-toggle {
		position: fixed;
		right: calc(18px + env(safe-area-inset-right, 0px));
		bottom: calc(22px + env(safe-area-inset-bottom, 0px));
		width: 56px;
		height: 56px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 16px;
		border: 1px solid rgba(60, 60, 60, 0.9);
		background: rgba(30, 30, 30, 0.92);
		color: #9cdcfe;
		box-shadow: 0 12px 30px rgba(0, 0, 0, 0.55);
		cursor: pointer;
		z-index: 70;
		transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	}

	.mobile-search-toggle:hover {
		background: rgba(40, 40, 40, 0.95);
	}

	.mobile-search-toggle:active {
		transform: scale(0.97);
	}

	.mobile-search-toggle:focus-visible {
		outline: 2px solid #9cdcfe;
		outline-offset: 3px;
	}

	.mobile-search-toggle.is-open {
		background: #2d76c6;
		border-color: #3c8ce6;
		color: #ffffff;
	}

	.mobile-search-icon {
		position: relative;
		width: 20px;
		height: 20px;
	}

	.mobile-search-icon::before {
		content: '';
		position: absolute;
		inset: 2px;
		border-radius: 50%;
		border: 2px solid currentColor;
		box-sizing: border-box;
	}

	.mobile-search-icon::after {
		content: '';
		position: absolute;
		right: -2px;
		bottom: -3px;
		width: 8px;
		height: 2px;
		border-radius: 2px;
		background: currentColor;
		transform: rotate(45deg);
		transform-origin: center;
	}

	.left-pane::-webkit-scrollbar,
	.right-pane::-webkit-scrollbar {
		width: 6px;
	}
}
