.terrain-open { width: 100%; justify-content: center; margin-bottom: 20px; min-height: 52px; }
.terrain-page { min-height: 100dvh; max-width: 820px; margin: 0 auto; padding: max(14px, env(safe-area-inset-top)) 16px calc(32px + env(safe-area-inset-bottom)); color: var(--ink); }
.terrain-top { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:14px; }
.terrain-top div { display:flex; flex-direction:column; gap:2px; min-width:0; }
.terrain-top span, .terrain-current>p, .terrain-current>span, .terrain-status span { font:500 10px/1.4 var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); }
.terrain-top strong { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.terrain-quit { min-height:44px; display:inline-flex; align-items:center; color:var(--accent-dark); font-weight:500; }
.terrain-spaces { display:flex; gap:8px; overflow-x:auto; padding:2px 0 14px; scrollbar-width:none; }
.terrain-spaces button { min-width:112px; min-height:52px; display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 12px; border:1px solid var(--border); border-radius:14px; background:var(--paper); color:var(--ink); }
.terrain-spaces button.active { background:var(--ink); border-color:var(--ink); color:var(--offwhite); }
.terrain-spaces span { font-family:var(--mono); font-size:11px; }
.terrain-status { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.terrain-status>div { display:flex; flex-direction:column; padding:14px; border-radius:14px; background:var(--paper); border:1px solid var(--border); }
.terrain-status strong { font-size:1.18rem; }
.terrain-current, .terrain-done, .terrain-finish { padding:20px; border-radius:20px; background:var(--ink); color:var(--offwhite); margin-bottom:10px; }
.terrain-current h1 { font:500 2rem/1 var(--serif); margin:4px 0 20px; color:inherit; }
.terrain-current h2 { font:500 1.35rem/1.2 var(--serif); margin:3px 0; color:inherit; }
.terrain-current p:last-of-type { color:rgba(255,255,255,.72); }
.terrain-primary { width:100%; min-height:56px; border:0; border-radius:14px; margin-top:16px; padding:12px 18px; background:var(--accent); color:#fff; font:500 15px var(--sans); display:flex; align-items:center; justify-content:center; cursor:pointer; }
.terrain-quick { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin:10px 0; }
.terrain-quick button, .terrain-quick a { min-height:58px; display:flex; justify-content:center; align-items:center; border:1px solid var(--border); border-radius:14px; background:var(--paper); color:var(--ink); font:500 12px var(--sans); text-decoration:none; }
.terrain-photo-counts { display:flex; justify-content:space-around; gap:8px; margin:10px 0 18px; color:var(--ink-soft); font-size:12px; }
.terrain-zones h2, .terrain-missing h2 { font-size:1rem; margin:20px 0 10px; }
.terrain-zone, .terrain-missing>div { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:68px; padding:12px 14px; margin-bottom:8px; background:var(--paper); border:1px solid var(--border); border-radius:14px; }
.terrain-zone>div { display:flex; flex-direction:column; gap:3px; }
.terrain-zone span { font:10px var(--mono); text-transform:uppercase; color:var(--ink-soft); }
.terrain-zone button, .terrain-missing button { min-height:44px; padding:8px 14px; border:1px solid var(--accent); border-radius:12px; background:transparent; color:var(--accent-dark); }
.terrain-zone.is-fait { opacity:.66; }
.terrain-details { margin:10px 0; padding:14px; border:1px solid var(--border); border-radius:14px; background:var(--paper); }
.terrain-details summary { min-height:44px; display:flex; align-items:center; font-weight:500; cursor:pointer; }
.terrain-read-list { display:flex; flex-direction:column; gap:8px; margin:8px 0 14px; }
.terrain-gentle { color:#f3c7a9; }
.terrain-finish { margin-top:12px; }
.terrain-done h2, .terrain-finish h2 { color:inherit; }
.terrain-sheet { padding:0 20px 24px; }
.terrain-sheet textarea { width:100%; margin-top:8px; }
.terrain-photo-choice { display:flex; gap:10px; flex-wrap:wrap; margin:14px 0; }
.terrain-photo-choice label { min-height:44px; display:flex; align-items:center; gap:6px; padding:8px 12px; border:1px solid var(--border); border-radius:12px; }
body:not(.has-bottom-nav) .terrain-page { padding-bottom:calc(32px + env(safe-area-inset-bottom)); }
@media (max-width:430px) { .terrain-page { padding-left:12px; padding-right:12px; } .terrain-quick { grid-template-columns:repeat(2,1fr); } .terrain-current { padding:18px; } }
