/* ═══════════════════════════════════════════════════════════════
   Announce Modal — модалка создания объявления
   Извлечено из checklist_operational.css строки 5087–5149
   ═══════════════════════════════════════════════════════════════ */

        /* ===== ANNOUNCE MODAL ===== */
        .announce-modal-wrap {
            display: none; position: fixed;
            inset: 0; background: rgba(15,23,42,0.45);
            z-index: 1000; align-items: center; justify-content: center;
            padding: var(--space-5);
        }
        .announce-modal-wrap.active { display: flex; }
        .announce-modal {
            width: 100%; max-width: 560px;
            background: var(--color-surface); border-radius: var(--radius-3xl);
            padding: var(--space-8); box-shadow: 0 20px 60px rgba(15,23,42,0.2);
        }
        .announce-modal h3 { font-size: var(--text-xl); margin-bottom: 18px; color: var(--color-text); }
        .announce-modal label {
            display: block; font-size: var(--text-sm); font-weight: 600;
            color: var(--color-text-strong); margin: 12px 0 8px;
        }
        .announce-modal input,
.announce-modal textarea,
.announce-modal select {
            width: 100%; border: 1px solid var(--color-border-strong);
            border-radius: var(--radius-lg); padding: var(--space-3);
            font: inherit; font-size: var(--text-base); outline: none;
            transition: border-color 0.2s;
        }
        .announce-modal input:focus,
.announce-modal textarea:focus,
.announce-modal select:focus { border-color: var(--color-primary); }
        .announce-modal textarea { min-height: 140px; resize: vertical; }
        .announce-modal-actions {
            display: flex; justify-content: flex-end;
            gap: var(--space-2); margin-top: 20px;
        }
        .ann-btn-cancel {
            border: none; padding: 12px 16px; border-radius: var(--radius-lg);
            background: var(--color-gray-100); color: var(--color-text-strong); font-size: var(--text-base);
            font-weight: 600; cursor: pointer;
        }
        .ann-btn-submit {
            border: none; padding: 12px 20px; border-radius: var(--radius-lg);
            background: var(--color-primary); color: var(--color-surface); font-size: var(--text-base);
            font-weight: 600; cursor: pointer;
        }
        .ann-btn-submit:hover { background: var(--color-primary-dark); }

        /* type selector chips inside modal */
        .type-chips { display: flex; gap: var(--space-2); flex-wrap: wrap; }
        .type-chip {
            border: 2px solid var(--color-border); border-radius: var(--radius-pill);
            padding: 8px 16px; font-size: var(--text-sm); font-weight: 600;
            cursor: pointer; transition: all 0.18s; background: var(--color-surface);
            font-family: inherit;
        }
        .type-chip.selected-news { background: var(--color-primary-50); border-color: var(--color-primary-strong); color: var(--color-primary-strong); }
        .type-chip.selected-alert { background: var(--color-danger-50); border-color: var(--color-danger-700); color: var(--color-danger-700); }
        .type-chip.selected-reminder { background: var(--color-warning-50); border-color: #b45309; color: #b45309; }

        /* Header icon transition */
        header:hover #pageHeaderIcon {
            transform: scale(1.04);
        }

