/* Angebot-Generator – Formular-Styles (Front- und Backend) */

.ag-wrap {
    max-width: 920px;
    font-size: 14px;
    line-height: 1.5;
}

.ag-title {
    color: #0f6734;
    margin-bottom: 0.6em;
}

.ag-notice {
    padding: 10px 14px;
    border-radius: 4px;
    margin-bottom: 1em;
}

.ag-notice-success { background: #e3f4e9; border-left: 4px solid #0f6734; }
.ag-notice-error { background: #fde0e0; border-left: 4px solid #c0392b; }

.ag-fieldset {
    border: 1px solid #d0e8d6;
    border-radius: 6px;
    padding: 12px 16px;
    margin: 0 0 16px;
}

.ag-fieldset > legend {
    color: #0f6734;
    font-weight: 600;
    padding: 0 6px;
}

.ag-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 8px;
}

.ag-grid .ag-field { flex: 1 1 45%; min-width: 220px; }
.ag-grid-3 .ag-field { flex: 1 1 30%; min-width: 180px; }
.ag-grid-4 .ag-field { flex: 1 1 22%; min-width: 150px; }

/* Positions-Karten */
.ag-item-row {
    border: 1px solid #d0e8d6;
    border-radius: 6px;
    padding: 12px 14px;
    margin-bottom: 14px;
    background: #fbfdfc;
}
.ag-item-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.ag-item-nr { font-weight: 600; color: #0f6734; }
.ag-concept-builder {
    border-top: 1px dashed #cfe0d5;
    margin-top: 6px; padding-top: 8px;
}
.ag-concept-title { font-size: 12px; font-weight: 600; color: #0f6734; margin-bottom: 6px; }
.ag-concept-preview {
    font-size: 12px; color: #555; background: #edf6ef;
    border-radius: 4px; padding: 6px 8px; margin-top: 4px;
}
.ag-concept-preview-text { font-style: italic; }

/* Enddatum-Berechnung */
.ag-cal-box {
    border: 1px dashed #cfe0d5;
    border-radius: 6px;
    padding: 10px 12px;
    margin: 8px 0;
    background: #f7fbf8;
}
.ag-cal-title { font-size: 12px; font-weight: 600; color: #0f6734; margin-bottom: 6px; }
.ag-weekdays { display: flex; flex-wrap: wrap; gap: 8px; }
.ag-wd {
    display: inline-flex; align-items: center; gap: 4px;
    background: #fff; border: 1px solid #c9d4df; border-radius: 4px;
    padding: 5px 8px; font-size: 13px; cursor: pointer;
}
.ag-wd input { margin: 0; }
.ag-cal-result {
    margin-top: 8px; font-size: 13px; color: #0f6734;
    background: #e3f4e9; border-radius: 4px; padding: 6px 10px;
}
.ag-cal-result.ag-cal-error { color: #a5281f; background: #fde0e0; }
.ag-item-amount { margin-top: 8px; font-weight: 600; color: #0f6734; }
.ag-item-amount .ag-amount { width: 120px; display: inline-block; }
.ag-remove {
    background: #fbe4e4;
    border: 1px solid #e2a6a6;
    color: #a5281f;
    border-radius: 4px;
    cursor: pointer;
    font-size: 13px;
    line-height: 1;
    padding: 5px 10px;
}

.ag-field { display: flex; flex-direction: column; margin-bottom: 8px; }
.ag-field label { font-weight: 600; margin-bottom: 3px; font-size: 13px; }
.ag-field small { color: #777; margin-top: 2px; }

.ag-form input[type="text"],
.ag-form input[type="date"],
.ag-form select,
.ag-form textarea {
    padding: 7px 9px;
    border: 1px solid #c9d4df;
    border-radius: 4px;
    font-size: 14px;
    width: 100%;
    box-sizing: border-box;
    background: #fff;
}

.ag-textarea { width: 100%; box-sizing: border-box; }

.ag-items {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 10px;
}

.ag-items th {
    background: #0f6734;
    color: #fff;
    padding: 8px;
    text-align: left;
    font-size: 13px;
}

.ag-items td {
    border: 1px solid #e1e8e3;
    padding: 5px;
    vertical-align: top;
}

.ag-items input, .ag-items textarea, .ag-items select { border: 1px solid #d5dde4; width: 100%; box-sizing: border-box; }
.ag-course { font-size: 12px; padding: 4px; }
.ag-hint { font-size: 12px; color: #0f6734; background: #edf6ef; border: 1px solid #d0e8d6; border-radius: 4px; padding: 6px 10px; }
.ag-amount { background: #f5f7f9 !important; text-align: right; }
.ag-center { text-align: center; vertical-align: middle; }

.ag-totals-preview {
    justify-content: center;
    background: #edf6ef;
    border: 1px solid #d0e8d6;
    border-radius: 4px;
    padding: 8px 12px;
}

.ag-radio { display: block; margin: 6px 0; }

.ag-actions { margin-top: 12px; display: flex; gap: 10px; flex-wrap: wrap; }

.ag-btn {
    display: inline-block;
    padding: 10px 18px;
    border-radius: 4px;
    border: none;
    cursor: pointer;
    font-size: 14px;
    text-decoration: none;
}

.ag-btn-primary { background: #0f6734; color: #fff; }
.ag-btn-primary:hover { background: #0b4f27; color: #fff; }
.ag-btn-light { background: #f0f3f6; color: #1d3a5f; border: 1px solid #c9d4df; }
.ag-btn-light:hover { background: #e2e8ef; }

.ag-row-disc { font-size: 12px; color: #b5651d; font-weight: 600; margin-left: 8px; }

.ag-cal-buttons { display: flex; flex-direction: column; gap: 6px; }
