:root {
	--primary: #2563eb;
	--primary-dark: #1d4ed8;
	--primary-light: #eff6ff;
	--text: #1e293b;
	--text-light: #64748b;
	--border: #e2e8f0;
	--bg: #f8fafc;
	--danger: #dc2626;
	--danger-bg: #fef2f2;
	--danger-border: #fecaca;
	--ok: #059669;
	--radius: 12px;
}

* { box-sizing: border-box; }

body {
	margin: 0;
	padding: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
		"Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", sans-serif;
	font-size: 15px;
	color: var(--text);
	background: var(--bg);
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

/* 顶部品牌区 */
.hero {
	text-align: center;
	padding: 56px 16px 8px;
}
.logo {
	color: var(--primary);
	margin-bottom: 8px;
}
.hero h1 {
	margin: 0 0 8px;
	font-size: 30px;
	font-weight: 700;
	letter-spacing: 1px;
}
.slogan {
	margin: 0;
	color: var(--text-light);
	font-size: 15px;
}

/* 主体 */
.wrap {
	width: 100%;
	max-width: 640px;
	margin: 0 auto;
	padding: 32px 16px 24px;
	flex: 1;
}

/* 输入卡片 */
.card {
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 28px 24px;
	box-shadow: 0 4px 16px rgba(30, 41, 59, 0.06);
}

/* 提示信息 */
.alert {
	border-radius: 8px;
	padding: 12px 14px;
	margin-bottom: 16px;
	font-size: 14px;
	line-height: 1.6;
}
.alert-error {
	color: var(--danger);
	background: var(--danger-bg);
	border: 1px solid var(--danger-border);
}
.alert-ok {
	background: var(--primary-light);
	border: 1px solid #bfdbfe;
}
.ok-label {
	display: inline-block;
	font-size: 12px;
	font-weight: 600;
	color: #fff;
	background: var(--ok);
	border-radius: 4px;
	padding: 1px 8px;
	margin-bottom: 8px;
}
.ok-body {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.ok-link {
	color: var(--primary-dark);
	font-weight: 600;
	font-size: 15px;
	word-break: break-all;
}
.btn-copy {
	flex-shrink: 0;
	border: 1px solid var(--primary);
	background: #fff;
	color: var(--primary);
	border-radius: 6px;
	padding: 4px 14px;
	font-size: 13px;
	cursor: pointer;
	transition: all 0.15s;
}
.btn-copy:hover {
	background: var(--primary);
	color: #fff;
}

/* 表单 */
.shorten-form {
	display: flex;
	gap: 10px;
}
.shorten-form input[type="url"] {
	flex: 1;
	height: 46px;
	padding: 0 14px;
	font-size: 15px;
	font-family: inherit;
	border: 1px solid var(--border);
	border-radius: 8px;
	outline: none;
	transition: border-color 0.15s, box-shadow 0.15s;
	min-width: 0;
}
.shorten-form input[type="url"]:focus {
	border-color: var(--primary);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}
.shorten-form .btn {
	width: 110px;
	height: 46px;
	flex-shrink: 0;
	border: none;
	border-radius: 8px;
	background: var(--primary);
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	font-family: inherit;
	letter-spacing: 4px;
	cursor: pointer;
	transition: background 0.15s, transform 0.1s;
}
.shorten-form .btn:hover {
	background: var(--primary-dark);
}
.shorten-form .btn:active {
	transform: scale(0.97);
}

.msg-hint {
	color: var(--text-light);
	font-size: 13px;
	line-height: 1.7;
	margin: 14px 0 0;
}
.msg-hint code {
	background: #f1f5f9;
	border: 1px solid var(--border);
	border-radius: 4px;
	padding: 1px 5px;
	font-size: 12px;
	color: var(--primary-dark);
}

/* 特性介绍 */
.features {
	display: flex;
	gap: 14px;
	margin-top: 22px;
}
.feature {
	flex: 1;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 18px 16px;
	text-align: center;
}
.feature-icon {
	font-size: 22px;
	line-height: 1;
}
.feature h3 {
	margin: 10px 0 6px;
	font-size: 14px;
	font-weight: 600;
}
.feature p {
	margin: 0;
	color: var(--text-light);
	font-size: 12px;
	line-height: 1.7;
}
.feature code {
	background: #f1f5f9;
	border-radius: 3px;
	padding: 0 4px;
	font-size: 11px;
}

/* 使用协议（折叠） */
.agreement {
	margin-top: 22px;
	background: #fff;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	padding: 0 18px;
}
.agreement summary {
	cursor: pointer;
	padding: 14px 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--text-light);
	user-select: none;
}
.agreement summary:hover {
	color: var(--text);
}
.agreement ol {
	margin: 0 0 16px;
	padding-left: 22px;
	color: var(--text-light);
	font-size: 13px;
	line-height: 2;
}

/* 页脚 */
#banquan {
	width: 100%;
	max-width: 640px;
	margin: 0 auto;
	padding: 0 16px 28px;
	text-align: center;
	color: var(--text-light);
	font-size: 13px;
}

a {
	text-decoration: none;
	color: var(--primary);
	transition: color 0.15s;
}
a:hover {
	text-decoration: underline;
	color: var(--primary-dark);
}

/* 移动端适配 */
@media (max-width: 560px) {
	.hero { padding-top: 36px; }
	.hero h1 { font-size: 24px; }
	.features { flex-direction: column; }
	.shorten-form { flex-direction: column; }
	.shorten-form .btn { width: 100%; letter-spacing: 8px; }
}
