/* ============================================================
   澳大利亚中小学院校库地图 · 工具样式
   所有选择器以 #zau 作用域 + zau- 类名前缀，避免与主题冲突
   配色跟随站点主色：#12518f / #f28c28
   地图点色仍保留语义三色：公立绿 / 天主教橙 / 私立深蓝
   ============================================================ */

#zau {
	--zau-navy: #0f2b46;
	--zau-navy2: #16385c;
	--zau-primary: #12518f;
	--zau-primary-d: #0e4273;
	--zau-accent: #f28c28;
	--zau-green: #0fa37f;
	--zau-orange: #ff8a3d;
	--zau-ink: #16202c;
	--zau-muted: #6b7a8c;
	--zau-line: #e4e7ec;
	--zau-block: #f4f7f9;
	--zau-sans: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", -apple-system, "Segoe UI", sans-serif;
	color: var(--zau-ink);
	font-family: var(--zau-sans);
	line-height: 1.65;
}

#zau *, #zau *::before, #zau *::after { box-sizing: border-box; }

#zau h1, #zau h2, #zau h3, #zau p, #zau ul, #zau ol, #zau li { margin: 0; padding: 0; }
#zau ul, #zau ol { list-style: none; }
#zau a { text-decoration: none; color: inherit; }
#zau button { font-family: var(--zau-sans); }

#zau .zau-wrap { max-width: 1240px; margin: 0 auto; }

/* 页头补充说明行 */
.page-head .page-head-note { font-size: 12.5px; color: #98a2b3; margin-top: 6px; }

/* ---------- 统计条 ---------- */
#zau .zau-nstats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin: 0 0 26px;
}
#zau .zau-nstats .zau-box {
	background: #fff;
	border: 1px solid var(--zau-line);
	border-radius: 12px;
	padding: 14px 16px;
}
#zau .zau-nstats b {
	display: block;
	font-size: 22px;
	font-weight: 800;
	color: var(--zau-primary);
	line-height: 1.2;
}
#zau .zau-nstats span { font-size: 12.5px; color: var(--zau-muted); }

/* ---------- 区块标题 ---------- */
#zau .zau-sec-head {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin: 30px 0 14px;
	flex-wrap: wrap;
}
#zau .zau-sec-head h2 { font-size: 20px; font-weight: 800; color: var(--zau-ink); }
#zau .zau-sec-head .zau-en {
	font-size: 11px;
	letter-spacing: 2px;
	color: #9aa8b6;
	text-transform: uppercase;
}
#zau .zau-sec-head .zau-hint { font-size: 13px; color: var(--zau-muted); }

/* ---------- 州快捷筛选 ---------- */
#zau .zau-quick { display: flex; gap: 9px; flex-wrap: wrap; }
#zau .zau-quick button {
	border: 1px solid var(--zau-line);
	background: #fff;
	border-radius: 999px;
	padding: 7px 15px;
	font-size: 13px;
	font-weight: 600;
	color: #3d4c5e;
	cursor: pointer;
	transition: .15s;
}
#zau .zau-quick button:hover { border-color: var(--zau-primary); color: var(--zau-primary); }
#zau .zau-quick button.is-on {
	background: var(--zau-primary);
	border-color: var(--zau-primary);
	color: #fff;
	box-shadow: 0 4px 14px rgba(18, 81, 143, .28);
}
#zau .zau-quick button small { font-weight: 400; opacity: .75; margin-left: 4px; }

/* ---------- 筛选卡 ---------- */
#zau .zau-fcard {
	background: #fff;
	border: 1px solid var(--zau-line);
	border-radius: 14px;
	box-shadow: 0 4px 20px rgba(16, 42, 84, .06);
	padding: 18px 20px;
}
#zau .zau-fgrid { display: grid; grid-template-columns: 2.2fr 1fr 1fr 1fr; gap: 12px; }
#zau .zau-fgrid2 { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-top: 12px; }
#zau .zau-fgrid label,
#zau .zau-fgrid2 label {
	display: block;
	font-size: 11.5px;
	color: var(--zau-muted);
	margin-bottom: 4px;
	font-weight: 600;
}
#zau .zau-fgrid input,
#zau .zau-fgrid select,
#zau .zau-fgrid2 select {
	width: 100%;
	border: 1px solid var(--zau-line);
	border-radius: 9px;
	padding: 9px 12px;
	font-size: 13.5px;
	color: var(--zau-ink);
	background: #fff;
	outline: none;
	transition: .15s;
	font-family: var(--zau-sans);
}
#zau .zau-fgrid input:focus,
#zau .zau-fgrid select:focus,
#zau .zau-fgrid2 select:focus {
	border-color: var(--zau-primary);
	box-shadow: 0 0 0 3px rgba(18, 81, 143, .12);
}
#zau .zau-fmeta {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 14px;
	flex-wrap: wrap;
	font-size: 13px;
	color: var(--zau-muted);
}
#zau .zau-fmeta b { color: var(--zau-primary); font-size: 14px; }
#zau .zau-fmeta .zau-reset {
	margin-left: auto;
	border: 1px solid var(--zau-line);
	background: #fff;
	border-radius: 9px;
	padding: 6px 14px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--zau-muted);
	cursor: pointer;
}
#zau .zau-fmeta .zau-reset:hover { border-color: #f0a8a0; color: #c0392b; }

/* ---------- 主体两栏 ---------- */
#zau .zau-grid {
	display: grid;
	grid-template-columns: 1fr 1.18fr;
	gap: 18px;
	align-items: start;
	margin-top: 18px;
}
#zau .zau-card {
	background: #fff;
	border: 1px solid var(--zau-line);
	border-radius: 14px;
	box-shadow: 0 4px 20px rgba(16, 42, 84, .06);
	padding: 16px;
}
#zau .zau-card h3 { font-size: 16px; font-weight: 800; color: var(--zau-ink); }
#zau .zau-card .zau-sub { font-size: 12.5px; color: var(--zau-muted); margin-top: 2px; }

/* ---------- 学校列表 ---------- */
#zau .zau-lhead { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; }
#zau .zau-lhead select {
	margin-left: auto;
	border: 1px solid var(--zau-line);
	border-radius: 9px;
	padding: 6px 10px;
	font-size: 12.5px;
	font-weight: 600;
	color: #3d4c5e;
	background: #fff;
	outline: none;
	font-family: var(--zau-sans);
}
#zau .zau-list { display: flex; flex-direction: column; gap: 8px; max-height: 640px; overflow-y: auto; padding-right: 2px; }
#zau .zau-item {
	border: 1px solid var(--zau-line);
	border-radius: 11px;
	padding: 11px 13px;
	cursor: pointer;
	transition: .13s;
	background: #fff;
}
#zau .zau-item:hover { border-color: var(--zau-primary); background: #f7fafd; transform: translateY(-1px); }
#zau .zau-it-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
#zau .zau-it-top b { font-size: 14px; line-height: 1.4; color: var(--zau-ink); }
#zau .zau-it-loc { font-size: 12px; color: var(--zau-muted); margin-top: 3px; }
#zau .zau-it-stats { display: flex; gap: 14px; margin-top: 6px; font-size: 12px; color: #3d4c5e; flex-wrap: wrap; }
#zau .zau-it-stats i { font-style: normal; color: var(--zau-muted); }

/* 徽章 */
#zau .zau-bd {
	flex: none;
	font-size: 10.5px;
	font-weight: 700;
	border-radius: 6px;
	padding: 2px 7px;
	letter-spacing: .3px;
	white-space: nowrap;
}
#zau .zau-bd--g { background: #e2f5ef; color: #0b8064; }
#zau .zau-bd--c { background: #fff0e2; color: #c96a17; }
#zau .zau-bd--i { background: #e6edf5; color: var(--zau-navy2); }
#zau .zau-bd--t { background: var(--zau-block); color: #5a6b7d; border: 1px solid var(--zau-line); }
#zau .zau-bd--sp { background: #fdf3d8; color: #9a7b13; }
#zau .zau-bd--in { background: #e8f1fb; color: #2456a3; }

#zau .zau-morebtn {
	display: block;
	width: 100%;
	margin-top: 12px;
	border: 1px dashed var(--zau-line);
	background: var(--zau-block);
	border-radius: 10px;
	padding: 11px;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--zau-primary);
	cursor: pointer;
	transition: .15s;
}
#zau .zau-morebtn:hover { border-color: var(--zau-primary); background: #eef4fb; }
#zau .zau-empty { padding: 36px 10px; text-align: center; color: var(--zau-muted); font-size: 13.5px; }

/* ---------- 地图 ---------- */
#zau .zau-map-card { position: sticky; top: 84px; }
#zau .zau-map-wrap { position: relative; }
#zau #zau-map { height: 640px; border-radius: 12px; z-index: 1; background: #dfe6ec; }
#zau .zau-map-ovl { position: absolute; z-index: 2; font-size: 12px; font-weight: 600; }
#zau .zau-map-ovl--cnt {
	top: 12px;
	left: 56px;
	background: rgba(255, 255, 255, .94);
	border: 1px solid var(--zau-line);
	border-radius: 999px;
	padding: 5px 13px;
	color: var(--zau-navy);
	box-shadow: 0 4px 14px rgba(15, 43, 70, .12);
}
#zau .zau-map-ovl--fit { right: 12px; top: 12px; display: flex; gap: 8px; }
#zau .zau-map-ovl--fit button {
	border: 1px solid var(--zau-line);
	background: rgba(255, 255, 255, .94);
	border-radius: 999px;
	padding: 6px 13px;
	font-size: 12px;
	font-weight: 600;
	color: #3d4c5e;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(15, 43, 70, .12);
}
#zau .zau-map-ovl--fit button:hover { border-color: var(--zau-primary); color: var(--zau-primary); }

#zau .zau-legend { display: flex; align-items: center; gap: 14px; margin-top: 12px; flex-wrap: wrap; }
#zau .zau-legend span {
	font-size: 12px;
	color: var(--zau-muted);
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
#zau .zau-legend i {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	display: inline-block;
	border: 1.5px solid #fff;
	box-shadow: 0 0 0 1px rgba(15, 43, 70, .18);
}
#zau .zau-map-note { font-size: 12px; color: var(--zau-muted); margin-top: 8px; }

#zau .leaflet-container { font-family: var(--zau-sans); }
#zau .leaflet-popup-content { font-family: var(--zau-sans); }
#zau .zau-pop-school {
	display: block;
	padding: 5px 2px;
	border-bottom: 1px dashed var(--zau-line);
	cursor: pointer;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--zau-navy2);
}
#zau .zau-pop-school:hover { color: var(--zau-primary); }
#zau .zau-pop-school small { display: block; font-weight: 400; color: var(--zau-muted); }

/* ---------- 弹窗 ---------- */
#zau .zau-mask {
	position: fixed;
	inset: 0;
	background: rgba(10, 22, 36, .55);
	z-index: 1000;
	display: none;
	align-items: flex-start;
	justify-content: center;
	padding: 4vh 16px;
	overflow-y: auto;
}
#zau .zau-mask.is-open { display: flex; }
#zau .zau-modal {
	background: #fff;
	border-radius: 16px;
	max-width: 760px;
	width: 100%;
	box-shadow: 0 24px 80px rgba(10, 22, 36, .4);
	overflow: hidden;
	animation: zau-pop .18s ease-out;
}
@keyframes zau-pop { from { transform: translateY(14px); opacity: 0; } to { transform: none; opacity: 1; } }
#zau .zau-m-head {
	background: linear-gradient(150deg, var(--zau-navy) 0%, var(--zau-navy2) 100%);
	color: #fff;
	padding: 20px 24px;
	position: relative;
}
#zau .zau-m-head .zau-en {
	font-size: 10.5px;
	letter-spacing: 2.5px;
	color: #8fb3d9;
	text-transform: uppercase;
}
#zau .zau-m-head h3 {
	font-size: 20px;
	font-weight: 800;
	margin-top: 4px;
	line-height: 1.35;
	padding-right: 36px;
	color: #fff;
}
#zau .zau-m-head .zau-badges { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 10px; }
#zau .zau-m-head .zau-bd {
	background: rgba(255, 255, 255, .12);
	color: #cfe0f0;
	border: 1px solid rgba(255, 255, 255, .16);
}
#zau .zau-m-head .zau-bd--hi { background: rgba(255, 255, 255, .92); color: var(--zau-navy); }
#zau .zau-m-head .zau-bd--in { background: rgba(126, 224, 195, .2); color: #7ee0c3; border-color: rgba(126, 224, 195, .4); }
#zau .zau-m-close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 32px;
	height: 32px;
	border-radius: 9px;
	border: none;
	background: rgba(255, 255, 255, .14);
	color: #fff;
	font-size: 15px;
	cursor: pointer;
	line-height: 1;
}
#zau .zau-m-close:hover { background: rgba(255, 255, 255, .28); }
#zau .zau-m-body { padding: 20px 24px 24px; }
#zau .zau-m-intro {
	background: var(--zau-block);
	border-radius: 11px;
	padding: 14px 16px;
	font-size: 13.5px;
	line-height: 1.85;
	color: #2a3a4c;
}
#zau .zau-m-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 16px; }
#zau .zau-m-facts .zau-fk {
	background: #fff;
	border: 1px solid var(--zau-line);
	border-radius: 10px;
	padding: 9px 12px;
}
#zau .zau-m-facts .zau-fk b { display: block; font-size: 15px; font-weight: 800; color: var(--zau-primary); }
#zau .zau-m-facts .zau-fk span { font-size: 11px; color: var(--zau-muted); }
#zau .zau-m-links { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
#zau .zau-m-links a {
	border: 1px solid var(--zau-line);
	border-radius: 999px;
	padding: 7px 16px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--zau-primary);
	transition: .15s;
}
#zau .zau-m-links a:hover { border-color: var(--zau-primary); background: #f0f5fb; }
#zau .zau-m-foot { margin-top: 14px; font-size: 11.5px; color: var(--zau-muted); line-height: 1.7; }
#zau .zau-m-foot b { color: var(--zau-ink); }

/* ---------- 说明区 ---------- */
#zau .zau-howto { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
#zau .zau-howto .zau-blk {
	background: #fff;
	border: 1px solid var(--zau-line);
	border-radius: 13px;
	box-shadow: 0 4px 20px rgba(16, 42, 84, .06);
	padding: 18px 20px;
}
#zau .zau-howto .zau-blk b {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 14.5px;
	color: var(--zau-ink);
}
#zau .zau-howto .zau-blk b em {
	font-style: normal;
	width: 22px;
	height: 22px;
	border-radius: 7px;
	background: var(--zau-primary);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
}
#zau .zau-howto .zau-blk p { font-size: 13px; color: #4a5a6b; margin-top: 8px; line-height: 1.8; }
#zau .zau-howto .zau-blk p a { color: var(--zau-primary); font-weight: 600; border-bottom: 1px dotted; }
#zau .zau-attrib {
	margin-top: 16px;
	background: #fff;
	border: 1px solid var(--zau-line);
	border-radius: 13px;
	padding: 14px 20px;
	font-size: 12px;
	color: var(--zau-muted);
	line-height: 1.8;
}
#zau .zau-attrib a { color: var(--zau-primary); font-weight: 600; }

/* ---------- 响应式 ---------- */
@media (max-width: 1020px) {
	#zau .zau-fgrid { grid-template-columns: 1fr 1fr; }
	#zau .zau-fgrid2 { grid-template-columns: 1fr 1fr; }
	#zau .zau-fgrid label span.zau-h,
	#zau .zau-fgrid2 label span.zau-h { display: none; }
	#zau .zau-grid { grid-template-columns: 1fr; }
	#zau .zau-map-card { position: static; }
	#zau #zau-map { height: 430px; }
	#zau .zau-howto { grid-template-columns: 1fr; }
	#zau .zau-nstats { grid-template-columns: repeat(2, 1fr); }
	#zau .zau-list { max-height: 520px; }
}
@media (max-width: 560px) {
	#zau .zau-m-facts { grid-template-columns: 1fr 1fr; }
	#zau .zau-fgrid input, #zau .zau-fgrid select, #zau .zau-fgrid2 select { font-size: 16px; }
	#zau .zau-nstats { grid-template-columns: 1fr 1fr; }
}
