:root {
    color-scheme: light;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #17223b;
    background: #edf4f1;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    min-width: 320px;
    background: radial-gradient(circle at top left, #d4ecdf 0, transparent 36rem), #edf4f1;
}

.app-shell {
    width: min(100% - 2rem, 740px);
    margin: 0 auto;
    padding: 4.5rem 0 3rem;
}

.hero { margin-bottom: 2rem; }

.eyebrow {
    margin: 0 0 .45rem;
    color: #37624e;
    font-size: .78rem;
    font-weight: 750;
    letter-spacing: .13em;
    text-transform: uppercase;
}

h1, h2, p { margin-top: 0; }
h1 { margin-bottom: .65rem; font-size: clamp(2.35rem, 7vw, 3.8rem); letter-spacing: -.055em; line-height: 1; }
h2 { margin-bottom: 1.1rem; font-size: 1.15rem; }
.intro { max-width: 38rem; margin-bottom: 0; color: #4d5a70; font-size: 1.1rem; line-height: 1.55; }

.card {
    margin-top: 1rem;
    padding: clamp(1.25rem, 4vw, 2rem);
    background: rgba(255, 255, 255, .9);
    border: 1px solid #d5dfdc;
    border-radius: 18px;
    box-shadow: 0 10px 30px rgba(31, 67, 53, .08);
}

.drop-zone {
    display: grid;
    min-height: 9rem;
    place-content: center;
    padding: 1.5rem;
    border: 2px dashed #7aa590;
    border-radius: 12px;
    background: #f5fbf7;
    cursor: pointer;
    text-align: center;
    transition: border-color .15s ease, background .15s ease;
}

.drop-zone:hover, .drop-zone:focus-within, .drop-zone.is-dragging { border-color: #1e6b48; background: #e9f6ed; }
.drop-zone input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.drop-zone-title { color: #1c5039; font-weight: 750; }
.drop-zone-detail { margin-top: .25rem; color: #617069; font-size: .9rem; }
.file-name { margin: .9rem 0 0; color: #4d5a70; font-size: .9rem; overflow-wrap: anywhere; }

.form-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.form-row label, legend { font-weight: 700; }
.form-row input { width: 9rem; padding: .65rem .7rem; border: 1px solid #9aaca7; border-radius: 8px; color: inherit; font: inherit; }
fieldset { margin: 0; padding: 0; border: 0; }
legend { margin-bottom: .7rem; }
.option { display: flex; gap: .75rem; padding: .8rem; border-radius: 10px; cursor: pointer; }
.option:hover { background: #f1f7f3; }
.option input { width: 1.1rem; height: 1.1rem; margin: .15rem 0 0; accent-color: #267c54; }
.option strong, .option small { display: block; }
.option small { margin-top: .2rem; color: #5b6876; line-height: 1.35; }

button, .download-button {
    display: inline-block;
    margin-top: 1.35rem;
    padding: .8rem 1.1rem;
    border: 0;
    border-radius: 9px;
    background: #1f6d49;
    color: #fff;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}
button:hover, .download-button:hover { background: #17583a; }
button:disabled { background: #9caaa5; cursor: not-allowed; }

.status-panel.is-error { border-color: #e2aaa4; background: #fff9f8; }
.status-panel.is-error #status-message { color: #8d3028; }
.summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0 0; }
.summary div { padding: .8rem; border-radius: 10px; background: #f1f6f4; }
dt { color: #5a6870; font-size: .78rem; line-height: 1.25; }
dd { margin: .25rem 0 0; font-size: 1.15rem; font-weight: 750; }
.privacy-note { margin: 1.35rem .3rem 0; color: #5a6870; font-size: .88rem; line-height: 1.5; }

@media (max-width: 520px) {
    .app-shell { width: min(100% - 1.25rem, 740px); padding-top: 2.5rem; }
    .form-row { align-items: flex-start; flex-direction: column; }
    .form-row input { width: 100%; }
    .summary { grid-template-columns: 1fr; }
}
