:root { color-scheme: light; font: 16px/1.45 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #173046; background: #f3f6f8; }
* { box-sizing: border-box; }
body { margin: 0; }
a { color: #145b82; }
button, input, select { font: inherit; }
.page-header { padding: 2rem clamp(1rem, 4vw, 3rem); background: #14374e; color: #fff; display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; }
.page-header h1 { font-size: clamp(1.75rem, 3vw, 2.65rem); line-height: 1.1; margin: .3rem 0 .8rem; }
.page-header .intro { max-width: 48rem; margin: 0; color: #d5e6ef; }
.eyebrow { margin: 0; text-transform: uppercase; font-size: .73rem; letter-spacing: .12em; font-weight: 750; color: #277494; }
.page-header .eyebrow { color: #a5d9ed; }
.page-links { display: flex; flex-wrap: wrap; gap: .7rem; }
.page-links a { color: #fff; white-space: nowrap; }
main { padding: 1.3rem clamp(1rem, 4vw, 3rem) 3rem; max-width: 1800px; margin: auto; }
.card, .source-card { background: #fff; border: 1px solid #d8e1e6; border-radius: .7rem; box-shadow: 0 2px 12px #1730460b; }
.picker { display: grid; grid-template-columns: minmax(190px, 1fr) minmax(280px, 2fr); gap: 1.5rem; padding: 1.2rem; }
.picker h2 { margin: 0 0 .4rem; }
.picker p { margin: 0; }
.picker-controls { display: grid; gap: .35rem; }
label { font-weight: 700; }
input, select { width: 100%; padding: .55rem .7rem; border: 1px solid #a9bbc7; border-radius: .35rem; background: #fff; color: #173046; }
select option { padding: .25rem; }
.muted { color: #61727d; font-size: .88rem; }
.trace-header { margin: 1.8rem 0 1.1rem; }
.trace-header h2 { margin: .2rem 0; font-size: clamp(1.4rem, 2.2vw, 2rem); }
.trace-header p { max-width: 75rem; }
.mapping-note { color: #79551f; font-weight: 600; }
.source-map { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; align-items: stretch; }
.layer { min-width: 0; border: 1px solid #c8d9e4; border-radius: .7rem; background: #eaf2f6; padding: .8rem; }
.layer.local { background: #e5f1ef; border-color: #b8d7d0; }
.layer.queensland { background: #f2ecdf; border-color: #dfd1ae; }
.layer.australia { background: #e8edf8; border-color: #c5d2ed; }
.layer.international { background: #f0ebf5; border-color: #d7c9e4; }
.layer h3 { margin: .2rem .25rem .6rem; font-size: 1.08rem; }
.layer-count { color: #526672; font-size: .8rem; font-weight: 500; }
.source-card { padding: .8rem; margin-bottom: .7rem; overflow-wrap: anywhere; }
.source-card h4 { font-size: .98rem; line-height: 1.3; margin: 0 0 .4rem; }
.badge { display: inline-block; border-radius: 2rem; background: #e7eff4; padding: .18rem .55rem; font-size: .74rem; font-weight: 700; color: #344e5c; margin: 0 0 .5rem; }
.source-card p { margin: .45rem 0; font-size: .87rem; }
.source-card .claim { padding-top: .45rem; border-top: 1px solid #e2e9ed; }
.source-card .locator { font-weight: 700; color: #33556c; }
.section-link { display: inline-block; font-size: .8rem; margin: .1rem 0 .45rem; }
.source-card .match-kind { font-size: .74rem; color: #77531e; font-weight: 700; }
.source-links { display: flex; flex-wrap: wrap; gap: .75rem; border-top: 1px solid #e2e9ed; padding-top: .6rem; margin-top: .65rem; font-size: .82rem; }
.empty { color: #526672; font-size: .86rem; padding: .65rem; }
.scope-note { max-width: 80rem; color: #4e606c; font-size: .87rem; margin-top: 1.2rem; }
@media (max-width: 1100px) { .source-map { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .page-header { display: block; } .page-links { margin-top: 1rem; } .picker, .source-map { grid-template-columns: 1fr; } .source-map { gap: .7rem; } }
