/* launch-token-modal.css — dark theme modal for pump.fun token launch */

.ltm-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.72);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 9999;
	opacity: 0;
	transition: opacity var(--duration-fast) var(--ease-standard);
}
.ltm-overlay.ltm-open { opacity: 1; }

.ltm-modal {
	background: #0e0e0e;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 14px;
	width: min(480px, calc(100vw - 2rem));
	max-height: calc(100vh - 4rem);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.75);
	color: #e5e5e5;
	font: 14px/1.5 Inter, system-ui, sans-serif;
}

/* Header */
.ltm-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0.9rem 1.25rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.07);
	flex-shrink: 0;
}
.ltm-title { font-size: 0.82rem; font-weight: 500; color: rgba(255, 255, 255, 0.85); }
.ltm-header-right { display: flex; align-items: center; gap: 0.75rem; }
.ltm-steps { display: flex; gap: 0.3rem; align-items: center; }
.ltm-step-dot {
	width: 6px; height: 6px; border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	transition: background var(--duration-base);
}
.ltm-step-dot.active { background: rgba(120, 200, 140, 0.9); }
.ltm-step-dot.done { background: rgba(120, 200, 140, 0.35); }
.ltm-close {
	background: none; border: none;
	color: rgba(255, 255, 255, 0.4);
	font-size: 1.2rem; line-height: 1;
	cursor: pointer; padding: 0.2rem 0.35rem;
	border-radius: 4px; transition: color var(--duration-fast);
}
.ltm-close:hover { color: rgba(255, 255, 255, 0.8); }

/* Body */
.ltm-body {
	padding: 1.1rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.82rem;
	overflow-y: auto;
	flex: 1;
}

/* Fields */
.ltm-field { display: flex; flex-direction: column; gap: 0.28rem; }
.ltm-label {
	font-size: 0.7rem;
	color: rgba(255, 255, 255, 0.45);
	display: flex;
	gap: 0.3rem;
	align-items: baseline;
}
.ltm-hint {
	font-size: 0.62rem;
	color: rgba(255, 255, 255, 0.25);
}
.ltm-brand-note {
	margin: 0;
	font-size: 0.66rem;
	line-height: 1.4;
	color: rgba(120, 200, 140, 0.7);
	background: rgba(120, 200, 140, 0.06);
	border: 1px solid rgba(120, 200, 140, 0.16);
	border-radius: 8px;
	padding: 0.5rem 0.7rem;
}
.ltm-input,
.ltm-textarea {
	background: rgba(255, 255, 255, 0.05);
	border: 1px solid rgba(255, 255, 255, 0.1);
	color: #e5e5e5;
	font-size: 0.83rem;
	padding: 0.48rem 0.75rem;
	border-radius: 8px;
	font-family: inherit;
	width: 100%;
	box-sizing: border-box;
	transition: border-color var(--duration-fast);
}
.ltm-textarea { resize: vertical; min-height: 60px; }
.ltm-input:focus, .ltm-textarea:focus {
	outline: none;
	border-color: rgba(120, 200, 140, 0.45);
}
.ltm-input.ltm-err { border-color: rgba(239, 68, 68, 0.6); }
.ltm-field-err {
	font-size: 0.68rem;
	color: #fca5a5;
	min-height: 1em;
}
.ltm-row { display: flex; gap: 0.75rem; }
.ltm-row .ltm-field { flex: 1; }

/* Network toggle */
.ltm-net-row {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.5);
}
.ltm-toggle {
	display: flex;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 6px;
	overflow: hidden;
}
.ltm-toggle-btn {
	background: none; border: none;
	color: rgba(255, 255, 255, 0.4);
	padding: 0.22rem 0.65rem;
	cursor: pointer; font-size: 0.7rem;
	font-family: inherit;
	transition: background var(--duration-fast), color var(--duration-fast);
}
.ltm-toggle-btn.active {
	background: rgba(255, 255, 255, 0.1);
	color: rgba(255, 255, 255, 0.9);
}

/* Footer */
.ltm-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0.82rem 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.07);
	gap: 0.75rem;
	flex-shrink: 0;
}
.ltm-btn {
	padding: 0.55rem 1.15rem;
	border-radius: 8px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	background: rgba(255, 255, 255, 0.05);
	color: rgba(255, 255, 255, 0.75);
	cursor: pointer; font-size: 0.8rem;
	font-family: inherit;
	transition: background var(--duration-fast), border-color var(--duration-fast);
	white-space: nowrap;
}
.ltm-btn:hover:not(:disabled) {
	background: rgba(255, 255, 255, 0.09);
	border-color: rgba(255, 255, 255, 0.22);
	color: rgba(255, 255, 255, 0.95);
}
.ltm-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.ltm-btn:focus-visible {
	outline: 2px solid rgba(120, 200, 140, 0.6);
	outline-offset: 2px;
}
.ltm-btn-primary {
	background: rgba(120, 200, 140, 0.16);
	border-color: rgba(120, 200, 140, 0.35);
	color: #d8f5e2;
}
.ltm-btn-primary:hover:not(:disabled) {
	background: rgba(120, 200, 140, 0.25);
	border-color: rgba(120, 200, 140, 0.5);
}

/* Quote rows */
.ltm-quote-block { display: flex; flex-direction: column; }
.ltm-quote-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 0.42rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.05);
	font-size: 0.78rem;
}
.ltm-quote-row:last-child { border-bottom: none; }
.ltm-q-label { color: rgba(255, 255, 255, 0.45); }
.ltm-q-val { font-variant-numeric: tabular-nums; }
.ltm-q-val.ltm-total { color: #d8f5e2; font-weight: 500; }

/* Chart */
.ltm-chart-wrap { margin: 0.2rem 0 0.4rem; }
.ltm-chart-title {
	font-size: 0.65rem;
	color: rgba(255, 255, 255, 0.3);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 0.4rem;
}

/* Wallet / signing section */
.ltm-wallet-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.03);
	border: 1px solid rgba(255, 255, 255, 0.07);
}
.ltm-wallet-info { flex: 1; min-width: 0; }
.ltm-wallet-status { font-size: 0.72rem; }
.ltm-wallet-status.connected { color: #86efac; }
.ltm-wallet-status.disconnected { color: rgba(255, 200, 100, 0.85); }
.ltm-wallet-addr {
	font-family: ui-monospace, monospace;
	font-size: 0.75rem;
	color: rgba(255, 255, 255, 0.5);
	margin-top: 0.15rem;
}
.ltm-status-msg {
	font-size: 0.76rem;
	color: rgba(255, 255, 255, 0.45);
	text-align: center;
	min-height: 1.2em;
	padding: 0.2rem 0;
}
.ltm-status-msg.ltm-err { color: #fca5a5; }

/* Step 0 — deploy agent on-chain */
.ltm-deploy-intro {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	padding: 0.1rem 0 0.25rem 0;
}
.ltm-deploy-title {
	font-size: 0.95rem;
	font-weight: 400;
	color: #e7e7ec;
}
.ltm-deploy-sub {
	font-size: 0.78rem;
	line-height: 1.45;
	color: rgba(255, 255, 255, 0.58);
}
.ltm-deploy-bullets {
	margin: 0.1rem 0 0 0;
	padding: 0 0 0 1.05rem;
	font-size: 0.76rem;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.55);
}
.ltm-deploy-bullets li { margin-bottom: 0.15rem; }
.ltm-deploy-bullets strong { color: #d8f5e2; font-weight: 500; }

/* Live preview card (step 1) */
.ltm-preview-card {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.8rem;
	border-radius: 12px;
	background: linear-gradient(135deg, rgba(120, 200, 140, 0.08), rgba(255, 255, 255, 0.02));
	border: 1px solid rgba(120, 200, 140, 0.18);
}
.ltm-pc-media {
	width: 56px; height: 56px;
	border-radius: 12px;
	overflow: hidden;
	flex-shrink: 0;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
}
.ltm-pc-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ltm-pc-fallback {
	width: 100%; height: 100%;
	display: flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 1.05rem; letter-spacing: 0.02em;
	color: #d8f5e2;
	background: linear-gradient(135deg, rgba(120, 200, 140, 0.35), rgba(120, 200, 140, 0.12));
}
.ltm-pc-meta { min-width: 0; display: flex; flex-direction: column; gap: 0.12rem; }
.ltm-pc-name {
	font-size: 0.95rem; font-weight: 600; color: #f3f6f4;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ltm-pc-sym {
	font-size: 0.78rem; color: rgba(216, 245, 226, 0.85);
	font-variant-numeric: tabular-nums;
}
.ltm-pc-mark { display: flex; align-items: center; gap: 0.4rem; margin-top: 0.2rem; }
.ltm-pc-mark-chip {
	font-family: ui-monospace, monospace;
	font-size: 0.66rem;
	color: #d8f5e2;
	background: rgba(120, 200, 140, 0.16);
	border: 1px solid rgba(120, 200, 140, 0.3);
	border-radius: 5px;
	padding: 0.08rem 0.4rem;
}
.ltm-pc-mark-label {
	font-size: 0.6rem;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: rgba(255, 255, 255, 0.3);
}

/* Success state */
.ltm-success {
	text-align: center;
	padding: 0.75rem 0.5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
}
.ltm-success-icon { font-size: 2.4rem; }
.ltm-success-title {
	font-size: 1.05rem;
	font-weight: 300;
	color: #d8f5e2;
}
.ltm-share-card {
	width: 100%;
	max-width: 100%;
	height: auto;
	border-radius: 12px;
	border: 1px solid rgba(255, 255, 255, 0.08);
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
}
.ltm-share-actions {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
	justify-content: center;
	width: 100%;
}
.ltm-share-actions .ltm-btn { flex: 1; min-width: 110px; }
.ltm-mint-box {
	font-family: ui-monospace, monospace;
	font-size: 0.7rem;
	color: rgba(255, 255, 255, 0.45);
	word-break: break-all;
	background: rgba(255, 255, 255, 0.04);
	padding: 0.55rem 0.75rem;
	border-radius: 8px;
	width: 100%;
	box-sizing: border-box;
	text-align: left;
}
.ltm-cta-row {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 16px;
	width: 100%;
}
.ltm-cta-row .ltm-btn { flex: 1; min-width: 130px; }
.ltm-cta-row a.ltm-btn {
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Status spinner (reuse mp-spinner pattern) */
@keyframes ltm-spin { to { transform: rotate(360deg); } }
.ltm-spinner {
	display: inline-block;
	width: 12px; height: 12px;
	border: 1.5px solid rgba(255, 255, 255, 0.12);
	border-top-color: rgba(120, 200, 140, 0.8);
	border-radius: 50%;
	animation: ltm-spin 0.75s linear infinite;
	vertical-align: middle;
	margin-right: 0.4rem;
}

/* ── Interactive states (QB-07) ────────────────────────────────────────────
   The toggle had its own transition and no hover to run it. */

.ltm-toggle-btn:hover {
	color: var(--ink);
	background: var(--surface-2);
}
