:root {
    --primary: #1e5631;
    --primary-light: #eaf4ec;
    --border: #d8dee3;
    --text: #222;
    --danger: #c0392b;
}
* { box-sizing: border-box; }
body {
    font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    background: #f5f6f8;
    color: var(--text);
    margin: 0;
    padding: 24px 12px 80px;
}
.container { max-width: 720px; margin: 0 auto; }
header { text-align: center; margin-bottom: 24px; }
header h1 { font-size: 1.4rem; margin-bottom: 4px; color: var(--primary); }
.subtitle { color: #666; margin: 0; }

.card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 16px;
}
.card h2 { font-size: 1.05rem; margin-top: 0; color: var(--primary); }
.hint { font-size: 0.85rem; color: #777; margin-top: -6px; }

.field-label { display: block; font-weight: 600; margin: 14px 0 6px; font-size: 0.92rem; }
.req { color: var(--danger); }

input[type=text], select, textarea, input[type=file] {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.95rem;
    background: #fff;
}
.radio-group { display: flex; gap: 18px; flex-wrap: wrap; }
.radio-group label { font-weight: normal; display: flex; align-items: center; gap: 6px; }

.hidden { display: none !important; }

.block-item {
    border: 1px dashed var(--border);
    border-radius: 8px;
    padding: 14px;
    margin-top: 12px;
    position: relative;
    background: var(--primary-light);
}
.block-item .btn-remove {
    position: absolute;
    top: 8px;
    right: 8px;
    background: none;
    border: none;
    color: var(--danger);
    cursor: pointer;
    font-size: 0.85rem;
}
.nested-block {
    border-left: 3px solid var(--primary);
    padding-left: 12px;
    margin-top: 12px;
    background: #fff;
    border-radius: 6px;
    padding: 10px 12px;
}

.btn-add {
    margin-top: 12px;
    background: var(--primary);
    color: #fff;
    border: none;
    padding: 9px 16px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.9rem;
}
.btn-add:hover { opacity: 0.9; }

.btn-submit {
    width: 100%;
    padding: 14px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
}
.btn-submit:disabled { opacity: 0.6; cursor: not-allowed; }

.upload-info {
    text-align: center;
    font-size: 0.85rem;
    color: #555;
    margin: 10px 0;
}
.upload-info.over-limit { color: var(--danger); font-weight: 600; }

.alert {
    background: #fdecea;
    color: var(--danger);
    border: 1px solid #f5c6cb;
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 16px;
}
.success { text-align: center; padding: 40px 20px; }
.success h2 { color: var(--primary); }
