:root{font-family:Inter,"Microsoft YaHei",sans-serif;color:#24312e;background:#f5f5ef;font-size:15px;line-height:1.65;--green:#255b47;--line:#dce2d6}*{box-sizing:border-box}body{margin:0}a{color:var(--green);text-decoration:none}header{display:flex;align-items:center;justify-content:space-between;padding:20px 5vw;border-bottom:1px solid var(--line);background:#fffefa;gap:20px}.brand{font-size:22px;font-weight:750;letter-spacing:.08em}.brand span{font-size:12px;margin-left:15px;letter-spacing:0;font-weight:400;color:#707d70}main{max-width:1600px;margin:auto;padding:36px 5vw}.intro{margin-bottom:24px}.eyebrow{font-size:11px;letter-spacing:.22em;color:#738775;font-weight:700;margin:0 0 8px}h1{font-size:clamp(25px,3vw,38px);line-height:1.3;margin:0 0 12px;font-weight:650}h2{font-size:20px;margin:0 0 20px}.intro>p:last-child{color:#69756a;margin:0}.search-card,.card,.login-card{background:#fffefa;border:1px solid var(--line);border-radius:16px;padding:26px}.search-row{display:flex;gap:12px;margin-top:10px}input:not([type=checkbox]){display:block;width:100%;border:1px solid #bdcbb9;border-radius:8px;padding:12px 14px;font:inherit;color:inherit;background:white}input:focus{outline:2px solid #8aad86;outline-offset:2px}label{display:block;font-weight:550}label input:not([type=checkbox]){margin:8px 0 18px}button{padding:11px 22px;border-radius:8px;border:1px solid var(--green);background:var(--green);color:white;font:inherit;cursor:pointer;white-space:nowrap}.secondary{background:transparent;color:var(--green)}button:disabled{opacity:.5;cursor:not-allowed}.search-row input{margin:0}.meta{display:flex;justify-content:space-between;margin-top:18px;color:#5d6c5c;gap:10px}.hint,.footnote{font-size:13px;color:#778274;font-weight:400}.hint{margin:10px 0 0}.footnote{margin-top:24px}#status,#message{min-height:24px;color:#466440}#message.error,#status.error{color:#a0352a}.workspace{display:grid;grid-template-columns:280px minmax(0,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}.workspace aside{border-right:1px solid var(--line);max-height:850px;overflow:auto}.result-heading{display:flex;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line);background:#eef3e9}.results{padding:10px}.result-button{background:#fff;color:#33483a;border:1px solid transparent;text-align:left;white-space:normal;width:100%;padding:12px;margin-bottom:5px;display:block}.result-button small{display:block;color:#8a9685}.result-button:hover,.result-button.active{background:#e6f0df;border-color:#b8cdaa}.results>.hint{padding:12px}.picture-toolbar{display:flex;justify-content:space-between;padding:15px 20px;background:#eef3e9;border-bottom:1px solid var(--line)}.picture-toolbar label{font-size:13px}.image-scroll{max-height:850px;overflow:auto;padding:16px;background:#e5e9df;scroll-behavior:smooth}.image-wrap{position:relative;width:100%;line-height:0}.image-wrap.original{width:max-content}.image-wrap img{display:block;width:100%;height:auto}.image-wrap.original img{width:auto;max-width:none}.markers{position:absolute;inset:0;pointer-events:none}.marker{position:absolute;border:2px solid #ff9f16;background:#ffcc3138;box-shadow:0 0 0 1px #fff9}.marker.selected{border-color:#e54d16;background:#ff830b66;box-shadow:0 0 0 2px #f55e1b;z-index:1}.marker.preview{border:1px solid #278343;background:#70b46b18}.marker.preview.selected{border:2px solid #e54d16;background:#ff830b66}.login-card{max-width:460px;margin:50px auto}.login-card h1{font-size:28px}.login-card form{margin-top:24px}.login-card button{width:100%}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.card{margin-bottom:20px}.admin-grid .card{margin:0}.check{display:flex;gap:12px;margin:20px 0;font-size:14px;font-weight:400}.check input{flex:0 0 auto;margin-top:6px}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}details{border-top:1px solid var(--line);padding:16px 0}details>p{margin-bottom:16px}summary{cursor:pointer;color:var(--green)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:12px;text-align:left;border-bottom:1px solid var(--line)}th{color:#6b7c65;font-weight:500}td button{padding:6px 12px}.preview-scroll{max-height:700px}.preview-scroll img{width:1012px}.card .workspace{margin-top:16px}[hidden]{display:none!important}@media(max-width:800px){header{padding:18px 20px}.brand span{display:none}main{padding:25px 16px}.search-card,.card{padding:18px}.search-row{flex-wrap:wrap}.search-row input{flex-basis:100%}.workspace{grid-template-columns:1fr}.workspace aside{max-height:260px;border-right:none;border-bottom:1px solid var(--line)}.admin-grid{grid-template-columns:1fr}.meta{flex-direction:column}.image-scroll{padding:8px;max-height:650px}h1{font-size:27px}header>div{display:flex;gap:8px;align-items:center}header button{padding:6px 10px}.login-card{margin:20px auto}}
.picture-panel,.image-scroll,.workspace aside{min-width:0}@media(max-width:800px){.workspace{grid-template-columns:minmax(0,1fr)}}
.result-navigation{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;background:#fffefa;position:sticky;top:0;z-index:3;border-bottom:1px solid var(--line)}.result-navigation button{padding:6px 10px;font-size:13px}.result-navigation span{font-size:12px;color:#647260;text-align:center}.marker{border-width:1px;background:#ffcc3112;box-shadow:none}.marker.selected{border-width:1px;background:#ff830b12;box-shadow:0 0 0 1px #f55e1b}.marker.preview.selected{border-width:1px;background:#ff830b12}@media(max-width:800px){.marker,.marker.selected,.marker.preview,.marker.preview.selected{border-width:1px;box-shadow:none;background:transparent}.marker.selected{border-color:#e54d16}.workspace aside{position:relative}.result-navigation{top:0}}
.public-page{padding-top:var(--lookup-bar-height,130px)}.lookup-bar{position:fixed;top:0;left:0;right:0;z-index:100;background:#fffefa;border-bottom:1px solid #c9d4c4;box-shadow:0 4px 18px #233f291a;padding:12px max(20px,5vw);padding-top:calc(12px + env(safe-area-inset-top))}.lookup-bar-inner{max-width:1440px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 24px;align-items:center}.lookup-bar label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.lookup-bar .search-row{margin:0;flex-wrap:nowrap;gap:8px}.lookup-bar .search-row input{min-width:0;flex:1;padding:10px 12px}.lookup-bar .search-row button{padding:9px 14px}.lookup-bar .result-navigation{position:static;border:0;background:transparent;padding:0;gap:10px}.lookup-bar .result-navigation button{padding:9px 14px}.lookup-bar .result-navigation span{min-width:76px}.lookup-bar #selected-name{grid-column:1/-1;min-width:0;font-size:12px;line-height:1.5;color:#506c4b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.public-page .search-card .meta{margin-top:0}@media(max-width:800px){.lookup-bar{padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top))}.lookup-bar-inner{grid-template-columns:minmax(0,1fr);gap:6px}.lookup-bar .search-row input{font-size:16px;padding:8px 10px}.lookup-bar .search-row button{padding:7px 10px}.lookup-bar .result-navigation{justify-content:center;gap:14px}.lookup-bar .result-navigation button{padding:6px 20px}.lookup-bar #selected-name{text-align:center}.public-page .image-scroll{height:var(--lookup-picture-height,60dvh);max-height:none;scroll-margin-top:calc(var(--lookup-bar-height,130px) + 12px)}.public-page .intro{margin-bottom:16px}.public-page .intro .eyebrow{display:none}.public-page .intro h1{font-size:24px}.public-page .workspace aside{max-height:180px}}
.public-page.mobile-layout .image-scroll{height:var(--lookup-picture-height,60dvh);max-height:none}.public-page.mobile-layout .workspace{grid-template-columns:minmax(0,1fr)}.public-page.mobile-layout .workspace aside{max-height:180px;border-right:0;border-bottom:1px solid var(--line)}.public-page.mobile-layout .lookup-bar{padding:10px 16px;padding-top:calc(10px + env(safe-area-inset-top))}.public-page.mobile-layout .lookup-bar-inner{grid-template-columns:minmax(0,1fr);gap:6px}.public-page.mobile-layout .lookup-bar .search-row input{font-size:16px;padding:8px 10px}.public-page.mobile-layout .lookup-bar .search-row button{padding:7px 10px}.public-page.mobile-layout .lookup-bar .result-navigation{justify-content:center;gap:14px}.public-page.mobile-layout .lookup-bar .result-navigation button{padding:6px 20px}.public-page.mobile-layout #selected-name{text-align:center}.public-page.mobile-layout .marker,.public-page.mobile-layout .marker.selected{border-width:1px;box-shadow:none;background:transparent}
/* Blue matches and a thicker, slowly pulsing red selection. */
.public-page .marker:not(.selected){border:1px solid #006dff;box-shadow:none;background:transparent}
.public-page .marker.selected,.public-page.mobile-layout .marker.selected{border:2px solid #e00000;box-shadow:none;background:transparent;animation:selection-pulse 1.6s ease-in-out infinite}
@keyframes selection-pulse{0%,100%{border-color:rgba(224,0,0,1)}50%{border-color:rgba(224,0,0,.2)}}
@media(prefers-reduced-motion:reduce){.public-page .marker.selected,.public-page.mobile-layout .marker.selected{animation:none}}

/* Keep the mobile page focused on the date and image; navigation stays in the fixed bar. */
@media(max-width:800px),(pointer:coarse){.public-page .intro,.public-page .workspace>aside{display:none}}
.public-page.mobile-layout .intro,.public-page.mobile-layout .workspace>aside{display:none}

.market-tabs{grid-column:1/-1;display:flex;gap:8px}.market-tabs a{padding:3px 14px;border:1px solid #bdcbb9;border-radius:6px;font-size:14px}.market-tabs a[aria-current=page]{background:var(--green);color:white;border-color:var(--green)}.brand .market-name{font-size:22px;font-weight:750;color:inherit;letter-spacing:.08em;margin:0}#market-select{display:block;width:100%;max-width:420px;margin-top:8px;padding:10px 12px;border:1px solid #bdcbb9;border-radius:8px;background:white;font:inherit;color:inherit}@media(max-width:800px){.brand .market-name{display:inline}}

/* Compact date beside the mobile market title; desktop metadata stays unchanged. */
.public-page .brand .mobile-date{display:none}
@media(max-width:800px),(pointer:coarse){.public-page .search-card{display:none}.public-page header{gap:8px;padding:12px 16px}.public-page header>.brand{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}.public-page .brand .market-name{display:inline;font-size:20px}.public-page .brand .mobile-date{display:inline;font-size:12px;font-weight:400;letter-spacing:0;margin:0;color:#61705d}.public-page header>a:last-child{font-size:12px;white-space:nowrap}.public-page main{padding-top:12px}}
.public-page.mobile-layout .search-card{display:none}.public-page.mobile-layout header{gap:8px;padding:12px 16px}.public-page.mobile-layout header>.brand{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}.public-page.mobile-layout .brand .market-name{display:inline;font-size:20px}.public-page.mobile-layout .brand .mobile-date{display:inline;font-size:12px;font-weight:400;letter-spacing:0;margin:0;color:#61705d}.public-page.mobile-layout header>a:last-child{font-size:12px;white-space:nowrap}.public-page.mobile-layout main{padding-top:12px}

#layout-kind{display:block;width:100%;margin:8px 0 18px;padding:10px 12px;border:1px solid #bdcbb9;border-radius:8px;background:white;font:inherit;color:inherit}

/* Compact public desktop header and search instructions. */
.public-page header{padding-top:12px;padding-bottom:12px}.public-page header>.brand{display:inline-flex;align-items:baseline;gap:10px;white-space:nowrap}.public-page .brand .market-date{display:inline;font-size:14px;font-weight:400;letter-spacing:0;margin:0;color:#61705d}.public-page main{padding-top:12px}.lookup-bar .search-row{grid-column:1;grid-row:2}.lookup-bar .result-navigation{grid-column:2;grid-row:2}.lookup-bar #search-help{grid-column:1/-1;grid-row:3;margin:0;font-size:12px;line-height:1.5}.lookup-bar #selected-name{grid-row:4}
@media(max-width:800px),(pointer:coarse){.lookup-bar #search-help{display:none}.lookup-bar .result-navigation{grid-column:1;grid-row:3}.public-page .brand .market-date{font-size:12px}.public-page header>.brand{gap:6px}}
.public-page.mobile-layout .lookup-bar #search-help{display:none}.public-page.mobile-layout .lookup-bar .result-navigation{grid-column:1;grid-row:3}.public-page.mobile-layout .brand .market-date{font-size:12px}.public-page.mobile-layout header>.brand{gap:6px}
