:root { font: 16px system-ui, 'Segoe UI', sans-serif; color-scheme: light; --primary: #2D6546; --muted: #536B5B; --border: #CBDDCE; color: #243A2B; background: #F3F8F3; }
* { box-sizing: border-box; }
body { margin: 0; }
main { max-width: 900px; margin: auto; padding: 24px; }
h1 { margin: 0; font-size: 2rem; }
.eyebrow { color: var(--primary); font-weight: 700; margin-bottom: 8px; }
.card { border: 1px solid var(--border); border-radius: 16px; background: white; padding: 20px; margin: 18px 0; }
.notice { background: #DFEDE2; border-radius: 10px; padding: 14px; }
p { line-height: 1.5; overflow-wrap: anywhere; }
.small, footer { font-size: .875rem; color: var(--muted); line-height: 1.5; }
button, input, select { font: inherit; border: 1px solid #739880; border-radius: 9px; min-height: 44px; padding: 10px; }
button { cursor: pointer; color: var(--primary); background: #DFEDE2; }
button:hover { background: #CDDFD0; }
button:disabled { opacity: .5; }
input, select { width: 100%; min-width: 0; background: white; color: inherit; }
label { display: block; margin: 8px 0; }
.fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; margin-bottom: 16px; }
.photo-entry { display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 8px; border-bottom: 1px solid var(--border); padding: 8px 0; }
details { min-width: 0; }
summary { min-height: 44px; align-content: center; overflow-wrap: anywhere; cursor: pointer; line-height: 1.5; }
summary span { color: var(--muted); }
.photo-copy { width: 44px; padding: 8px; align-self: start; font-size: 20px; }
.photo-copy-manual { grid-column: 1 / -1; }
:is(summary, button, input, select):focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
[hidden] { display: none !important; }
@media(max-width: 600px) { main { padding: 14px; } .card { padding: 14px; } .fields { grid-template-columns: minmax(0, 1fr); gap: 4px; } }
