.photo-intro{display:flex;justify-content:space-between;align-items:end;gap:20px}.photo-intro .section-more{margin-bottom:10px;white-space:nowrap}.photo-stats{display:flex;gap:26px;margin:16px 0 0;font-size:11px;color:var(--muted)}.photo-stats b{font:22px monospace;color:var(--fg);margin-right:5px}.atlas{border:1px solid var(--line);border-radius:6px;background:var(--card);overflow:hidden;margin-bottom:28px;position:relative}.atlas-top{display:flex;justify-content:space-between;padding:22px 24px 0;font-size:11px;color:var(--muted);gap:20px}.atlas-top strong{font-weight:normal;color:var(--fg)}.travel-map{display:block;width:100%;height:auto;overflow:hidden}.map-country{fill:var(--line);stroke:var(--card);stroke-width:.7;vector-effect:non-scaling-stroke}.map-country.visited{fill:var(--accent);opacity:.7}.map-pin{cursor:pointer;outline:none;pointer-events:none}.map-pin .pin-stem{fill:none;stroke:var(--muted);stroke-width:1.4;stroke-linecap:round;pointer-events:visiblePainted}.map-pin .pin-head{fill:#b97461;stroke:var(--bg);stroke-width:.6;pointer-events:visiblePainted}.map-pin .pin-glint{fill:#f4d6bd;pointer-events:none}.map-pin:hover .pin-head,.map-pin:focus-visible .pin-head{fill:#cb856d;stroke:var(--fg);stroke-width:1}.map-pin text{fill:var(--fg);paint-order:stroke;stroke:var(--card);stroke-width:3px;font:11px Arial,sans-serif;pointer-events:none}.map-credit{font:9px monospace;color:var(--muted);padding:0 20px 12px;margin:0}.album-filters{display:flex;flex-wrap:wrap;gap:9px;margin:12px 0 22px}.album-filters button{padding:8px 12px;border:1px solid var(--line);border-radius:3px;color:var(--muted);background:transparent;font-size:11px}.album-filters button[aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}.city-album{margin:36px 0 48px;scroll-margin-top:30px}.city-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;gap:15px}.city-heading h2{font-size:21px}.city-heading span{font:11px monospace;color:var(--muted)}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 20px}.photo-card{border:0;padding:0;background:transparent;text-align:left;width:100%;min-width:0}.photo-cover{aspect-ratio:4/3;background:var(--card);overflow:hidden;border-radius:5px;border:1px solid var(--line);position:relative}.photo-cover img{display:block;width:100%;height:100%;object-fit:cover;image-rendering:pixelated;transition:transform .3s}.photo-card:hover .photo-cover img{transform:scale(1.025)}.photo-card h3{font-size:13px;font-weight:500;margin:14px 0 8px;overflow-wrap:anywhere}.photo-card p{font-size:10px;color:var(--muted);margin:0;line-height:1.8}.photo-cover .local-tag{position:absolute;left:10px;top:10px;background:var(--bg);color:var(--accent);padding:5px 8px;font:9px monospace}.photo-empty{text-align:center;border:1px dashed var(--line);padding:45px 20px;margin:22px 0 40px;border-radius:5px}.photo-empty h2{font-size:20px;margin:15px 0}.photo-empty p{font-size:13px;line-height:2;color:var(--muted)}.photo-note{font-size:11px;color:var(--muted);line-height:1.9}.photo-status{font-size:12px;color:var(--accent);line-height:1.8;min-height:1.8em}.photo-viewer{width:96vw;max-width:none;height:94vh;max-height:none;padding:18px 22px;overflow:hidden;display:none;grid-template-rows:auto minmax(0,1fr) auto;gap:12px}.photo-viewer[open]{display:grid;animation:appear .25s ease}.viewer-top,.viewer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.viewer-top h2{font-size:14px}.viewer-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.viewer-actions button,.viewer-actions a{border:1px solid var(--line);background:var(--card);font-size:11px;padding:8px 12px;border-radius:3px}.viewer-actions button[aria-pressed=true]{background:var(--accent);color:var(--bg)}.viewer-stage{min-height:0;overflow:auto;display:grid;place-items:start center;background:var(--card);border-radius:4px;position:relative}.viewer-image{border:0;background:none;padding:0;line-height:0;cursor:zoom-in;max-width:none}.viewer-image img{display:block;max-width:none;image-rendering:auto}.viewer-image.pixel-view img{image-rendering:pixelated}.viewer-stage.fit{place-items:center}.viewer-stage.fit .viewer-image{display:flex;align-items:center;justify-content:center;width:100%;height:100%;max-width:100%;max-height:100%;margin:0}.viewer-stage.fit img{max-width:100%;max-height:100%;object-fit:contain;width:auto;height:auto}.viewer-bottom{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;font-size:11px;color:var(--muted);line-height:1.8}.viewer-caption{display:block;max-width:none;overflow-wrap:anywhere}.viewer-size{display:block;min-width:0;width:100%;font:10px/1.7 monospace;overflow-wrap:anywhere;color:var(--muted)}.studio-intro{padding:40px 0 24px}.studio-intro h1{font-size:32px;margin:15px 0}.studio-intro p{color:var(--muted);font-size:13px;line-height:2}.studio-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:24px;align-items:start}.studio-panel{border:1px solid var(--line);border-radius:6px;background:var(--card);padding:24px;min-width:0}.studio-panel h2{font-size:16px;margin-bottom:18px}.studio-panel label{font-size:12px;display:block;margin:0 0 17px;line-height:1.8}.studio-panel input,.studio-panel textarea,.studio-panel select{width:100%;margin-top:7px;padding:10px;border:1px solid var(--line);border-radius:3px;background:var(--bg);color:var(--fg);font:13px Arial,sans-serif;accent-color:var(--accent)}.studio-panel input[type=range]{padding:0}.studio-panel input[type=checkbox]{width:auto}.studio-panel input:focus-visible,.studio-panel textarea:focus-visible,.studio-panel select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.studio-panel textarea{min-height:90px;resize:vertical}.studio-panel button,.studio-button{font-size:12px;background:var(--bg);border:1px solid var(--line);border-radius:3px;padding:10px 14px;display:inline-block}.studio-panel button.primary,.studio-button.primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.studio-panel button:disabled{opacity:.5;cursor:default}.studio-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.upload-zone{display:block!important;border:1px dashed var(--accent);padding:28px 18px;text-align:center;background:var(--bg);border-radius:4px;cursor:pointer}.upload-zone strong{font-size:16px;font-weight:500;display:block;margin-bottom:12px}.upload-zone input{max-width:100%;font-size:11px}.studio-preview{aspect-ratio:4/3;display:grid;place-items:center;background:var(--bg);border:1px solid var(--line);border-radius:4px;overflow:hidden}.studio-preview img{display:block;max-width:100%;max-height:100%;image-rendering:pixelated;object-fit:contain}.studio-preview:empty:before{content:'把一张照片，变成一格回忆。';font-size:12px;color:var(--muted)}.studio-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.studio-map{border:1px solid var(--line);background:var(--bg);margin:16px 0}.studio-map .travel-map{cursor:crosshair}.studio-map .map-country{fill:var(--line);stroke:var(--bg)}.studio-map .picked-point{fill:#c6955f;stroke:var(--bg);stroke-width:3}.draft-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.draft-item{padding:14px;border:1px solid var(--line);border-radius:4px}.draft-item img{width:100%;aspect-ratio:4/3;object-fit:cover;image-rendering:pixelated;background:var(--card)}.draft-item h3{font-size:13px;font-weight:500;overflow-wrap:anywhere}.draft-item p{font-size:11px;color:var(--muted);line-height:1.8}.draft-item button{font-size:11px;background:var(--card);border:1px solid var(--line);padding:8px 10px;border-radius:3px;margin:4px 7px 0 0}.draft-shelf{margin-top:40px}.draft-shelf>h2{margin-bottom:18px}.studio-login{margin-bottom:22px}.studio-login>summary{font-size:13px;cursor:pointer}.studio-login form{max-width:450px;margin-top:18px}.local-banner{padding:13px 17px;background:var(--card);border:1px solid var(--line);border-radius:4px;font-size:12px;line-height:1.8;color:var(--accent);margin:0 0 22px}.home-photo-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.photo-demo-shelf{margin-top:40px}.photo-demo-shelf summary{font-size:12px;color:var(--muted);cursor:pointer;margin-bottom:20px}[hidden]{display:none!important}@media(max-width:720px){.photo-grid,.home-photo-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 14px}.photo-intro{align-items:start}.photo-intro h1{font-size:30px}.photo-stats{gap:18px}.atlas-top{padding:15px 14px 0;font-size:10px}.map-credit{font-size:8px;padding:0 12px 10px}.studio-layout{grid-template-columns:1fr}.studio-panel{padding:20px}.draft-list{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-viewer{padding:12px;width:98vw;height:96vh}.viewer-top{gap:10px}.viewer-actions button,.viewer-actions a{padding:8px;font-size:10px}.city-heading h2{font-size:19px}.map-pin text{font-size:14px}.photo-intro .section-more{font-size:10px}.studio-intro h1{font-size:27px}}@media(prefers-reduced-motion:reduce){.photo-cover img{transition:none}.photo-viewer[open]{animation:none}}
.viewer-stage{display:block}.viewer-image{display:block;margin:0 auto}.viewer-stage.fit{display:grid}.photo-studio main{padding-bottom:40px}.photo-studio .studio-preview img{width:100%;height:100%;max-height:500px}.photo-studio .studio-preview{display:block}.photo-studio .studio-preview:empty{display:grid}
.photo-cover img,.home-photo-strip img,.draft-item img,.studio-preview img{image-rendering:auto}.cover-reference{display:flex;gap:16px;align-items:center;border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.cover-reference>img{width:120px;height:80px;border-radius:4px;flex-shrink:0}.cover-reference p{margin:0}.studio-preview:empty:before{content:'原图与插画，分别保留。'}.photo-cover:after{content:'展开插画 ↗';position:absolute;right:10px;bottom:10px;background:var(--bg);color:var(--fg);font-size:10px;padding:6px 9px;border-radius:3px;opacity:0;transition:opacity .2s}.photo-card:hover .photo-cover:after,.photo-card:focus-visible .photo-cover:after{opacity:1}@media(max-width:720px){.cover-reference{align-items:start;gap:12px}.cover-reference>img{width:95px;height:64px}}

.studio-ai{padding:18px;border:1px solid var(--line);border-radius:4px;background:var(--bg);margin:0 0 22px}.studio-ai>strong{font-size:14px;font-weight:500}.studio-ai .studio-actions{gap:8px;flex-wrap:wrap}.studio-ai #ai-status{margin-bottom:0;line-height:1.9}#photo-editor[aria-busy=true] .studio-ai{border-color:var(--accent)}

.studio-management{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.studio-management .studio-button{font-weight:600}

/* 默认完整预览：图片在可用画框内等比缩放；原尺寸仅由用户主动开启。 */
.photo-viewer{box-sizing:border-box;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);height:92dvh;margin:auto}
.viewer-stage{min-width:0;min-height:0}
.viewer-stage.fit{overflow:hidden;display:grid;place-items:center}
.viewer-stage.fit .viewer-image{width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;overflow:hidden}
.viewer-stage.fit .viewer-image img{width:100%!important;height:100%!important;max-width:100%;max-height:100%;object-fit:contain}
.photo-studio .studio-preview{height:clamp(220px,38vw,480px);aspect-ratio:auto;display:flex;align-items:center;justify-content:center;min-width:0}
.photo-studio .studio-preview img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
.city-search-field{min-width:0}.city-suggestions{display:grid;gap:5px;margin:-5px 0 8px}.city-suggestions button{text-align:left;width:100%;padding:8px 10px;font-size:11px;background:var(--bg);border:1px solid var(--line)}.city-suggestions button:hover,.city-suggestions button:focus-visible{border-color:var(--accent);background:var(--card)}.city-search-field .photo-note{margin:0 0 16px}
@media(max-width:720px){.photo-viewer{width:calc(100vw - 16px);max-width:calc(100vw - 16px);height:94dvh;max-height:calc(100dvh - 16px)}.studio-fields{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.admin-page button{transition:none}}

.photo-camera{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.8;color:var(--muted);margin:10px 0;overflow-wrap:anywhere;letter-spacing:.1px}.photo-card .photo-camera{margin:9px 0 -4px;font-size:10px;line-height:1.8}.viewer-details{min-width:0;width:100%}.viewer-details .photo-camera,.viewer-metadata .photo-camera{margin:0 0 5px;color:var(--fg);font-size:12px}.viewer-metadata .photo-note{margin:0}.viewer-bottom{align-items:flex-start}

.draft-item .draft-delete{color:var(--muted);background:transparent}.draft-item .draft-delete:hover{color:var(--fg);border-color:var(--accent)}.deleted-drafts{margin-top:20px;padding:16px;border:1px solid var(--line);border-radius:4px}.deleted-drafts summary{font-size:12px;color:var(--muted);cursor:pointer}.deleted-draft-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 0;font-size:12px;border-top:1px solid var(--line)}.deleted-draft-row span{overflow-wrap:anywhere;min-width:0}.deleted-draft-row button{flex-shrink:0;padding:8px 10px;font-size:11px;border:1px solid var(--line);border-radius:3px;background:var(--card);color:var(--fg)}.deleted-draft-row button:focus-visible,.draft-delete:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* 地图钉仅圆头与细柄响应鼠标；没有额外透明触发圈。 */
/* 查看框按实际图片比例收缩；不裁切，不铺满宽屏。 */
.photo-viewer[data-fit=true]{grid-template-rows:auto auto auto;align-content:start}.photo-viewer .viewer-stage.fit{width:var(--photo-width,100%);height:var(--photo-height,auto);max-width:100%;margin-inline:auto;flex:none}.photo-viewer .viewer-stage.fit .viewer-image{width:100%;height:100%}
.photo-studio .studio-preview{height:auto;min-height:0;aspect-ratio:auto;display:block}.photo-studio .studio-preview:empty{height:240px;display:grid}.photo-studio .studio-preview img{width:100%;height:auto;max-height:none;object-fit:contain}
.draft-shelf .city-heading{align-items:center;flex-wrap:wrap}.draft-shelf .city-heading h2{margin:0}
