:root { --av-red:#d60000; --av-blue:#32609A; --av-dark:#1f2a44; }
.idx-wrap { font-family:'Poppins',sans-serif; padding:1.4rem 0 3rem; }
.prog-shell { max-width:1440px; margin:0 auto; padding:0 16px; }
.prog-layout { display:flex; gap:1.4rem; align-items:flex-start; transition:gap .4s ease; }
.prog-chat { width:380px; flex-shrink:0; position:sticky; top:16px; overflow:hidden; transition:width .4s ease; }
.prog-layout.is-chat-collapsed { gap:0; }
.prog-layout.is-chat-collapsed .prog-chat { width:0; min-width:0; pointer-events:none; }
.prog-layout.is-chat-collapsed .chat-box { transform:translateX(-100%); }
.chat-toggle { position:fixed; left:0; bottom:100px; z-index:40; width:36px; height:48px; padding:0; margin:0;
    border:none; background:#d60000; color:#fff; border-radius:0 8px 8px 0;
    box-shadow:2px 4px 14px rgba(0,0,0,.18); cursor:pointer; display:flex; align-items:center; justify-content:center;
    flex:0 0 0; min-width:0; overflow:visible; }
.chat-toggle:hover, .chat-toggle:focus { background:#b00000; color:#fff; outline:none; }
.chat-toggle .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.prog-results { flex:1; min-width:0; }
.prog-results h1 { font-weight:700; color:var(--av-dark); font-size:1.7rem; margin:0; }
.prog-results-head { display:flex; align-items:center; margin-bottom:.35rem; }
.prog-results-head h1 { margin:0; }
.continent-filter { width:240px; max-width:100%; height:40px; box-sizing:border-box; border:1px solid #d5deea; border-radius:8px; padding:0 2rem 0 .85rem;
    font-size:.92rem; color:var(--av-dark); background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%231f2a44' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right .85rem center;
    font-family:inherit; appearance:none; -webkit-appearance:none; cursor:pointer; }
.continent-filter:focus { outline:none; border-color:var(--av-red); }
.chat-box { background:#fff; border-radius:16px; box-shadow:0 8px 28px rgba(0,0,0,.08);
    display:flex; flex-direction:column; height:calc((100vh - 120px) * 0.95); min-height:494px; overflow:hidden;
    width:380px; transition:transform .4s ease; }
.chat-head { background:#d60000; color:#fff; padding:.85rem 1.1rem; display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.chat-head h2 { font-size:1.05rem; font-weight:700; margin:0; }
.chat-reset { flex-shrink:0; border:1px solid rgba(255,255,255,.75); background:transparent; color:#fff;
    font-size:.72rem; font-weight:600; line-height:1.2; border-radius:16px; padding:.28rem .7rem; cursor:pointer; white-space:nowrap; }
.chat-reset:hover { background:rgba(255,255,255,.16); color:#fff; }
.chat-msgs { flex:1; overflow-y:auto; padding:1rem; background:#f4f7fb; }
.chat-bubble { max-width:92%; padding:.7rem .9rem; border-radius:14px; font-size:.9rem; line-height:1.45; margin-bottom:.7rem; white-space:pre-wrap; }
.chat-bubble.bot { background:#fff; color:#2c3544; border-bottom-left-radius:4px; box-shadow:0 2px 8px rgba(0,0,0,.04); }
.chat-bubble.user { background:var(--av-blue); color:#fff; margin-left:auto; border-bottom-right-radius:4px; }
.chat-bubble.typing { color:#6b7380; font-style:italic; }
.chat-form { display:flex; gap:.5rem; padding:.75rem; border-top:1px solid #edf1f6; background:#fff; }
.chat-form textarea { flex:1; resize:none; border:1px solid #d5deea; border-radius:10px; padding:.55rem .7rem;
    font-size:.9rem; min-height:44px; max-height:110px; }
.chat-form textarea:focus { outline:none; border-color:var(--av-blue); }
.chat-form button { background:var(--av-red); border:none; color:#fff; font-weight:600; border-radius:10px;
    padding:.55rem 1rem; min-width:86px; }
.chat-form button:disabled { opacity:.65; }
.chat-results-panel { display:none; }
.chat-results-panel.is-open { display:block; }
#program-detail-body.is-hidden { display:none; }
.prog-card { background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 6px 24px rgba(0,0,0,.08);
    transition:.2s; height:100%; display:flex; flex-direction:column; }
.prog-card:hover { transform:translateY(-4px); box-shadow:0 12px 34px rgba(0,0,0,.14); }
.prog-card .pc-img { height:200px; background-color:#d7e2ef; background-size:cover; background-position:center; position:relative; }
.pc-tag { position:absolute; top:12px; left:12px; background:var(--av-red); color:#fff; font-size:.72rem;
    font-weight:600; padding:.3rem .75rem; border-radius:20px; }
.prog-card .pc-content { padding:1.2rem 1.3rem; flex:1; display:flex; flex-direction:column; }
.prog-card h3 { font-weight:700; font-size:1.15rem; color:var(--av-dark); }
.prog-card .pc-dest { color:#8a94a6; font-size:.85rem; }
.prog-card .pc-dest i { color:var(--av-red); }
.prog-card .pc-sum { font-size:.9rem; color:#5b6472; margin:.6rem 0 1rem; flex:1; }
.prog-card .pc-foot { display:flex; align-items:center; justify-content:space-between; gap:.6rem; }
.prog-card .pc-price { font-weight:700; color:var(--av-blue); }
.prog-card .pc-price small { color:#8a94a6; font-weight:400; }
.btn-av { background:var(--av-red); border:none; color:#fff; font-weight:600; padding:.5rem 1.1rem; border-radius:8px; }
.btn-av:hover { background:#b00000; color:#fff; }
.results-empty { background:#fff; border-radius:16px; padding:2.2rem 1.4rem; text-align:center; color:#6b7380;
    box-shadow:0 6px 24px rgba(0,0,0,.06); }
.prog-detail-toolbar { display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; margin-bottom:.85rem; }
.prog-detail-toolbar .back-link { margin:0; }
.prog-detail-actions { display:flex; align-items:center; gap:.5rem; }
.btn-info-request, .btn-file-download {
    height:38px; box-sizing:border-box; border-radius:8px; font-weight:600; white-space:nowrap;
    padding:.5rem 1.15rem; display:inline-flex; align-items:center; justify-content:center; }
.btn-info-request { background:#d60000; border:none; color:#fff; }
.btn-info-request:hover, .btn-info-request:focus { background:#b00000; color:#fff; }
.btn-file-download { background:#fff; border:1px solid #d5deea; width:38px; padding:0; }
.btn-file-download:hover { border-color:#d60000; background:#fff8f8; }
.btn-file-download img { height:22px; width:auto; display:block; }
#infoRequestModal .modal-content { border:none; border-radius:14px; overflow:hidden; }
#infoRequestModal .modal-header { background:#d60000; color:#fff; border-bottom:none; padding:.9rem 1.15rem; }
#infoRequestModal .modal-header .modal-title { color:#fff!important; font-size:1.05rem; margin:0; }
#infoRequestModal .modal-header .close { color:#fff; text-shadow:none; opacity:.9; }
#infoRequestModal .modal-body { margin-top:0; margin-bottom:0; padding:1.15rem 1.25rem .4rem; }
#infoRequestModal .modal-footer { border-top:1px solid #edf1f6; padding:.75rem 1.25rem 1.1rem; }
#infoRequestModal label { color:#1f2a44!important; font-weight:600; font-size:.82rem; }
#infoRequestModal .captcha-row { display:flex; align-items:center; gap:.6rem; }
#infoRequestModal .captcha-row .captcha img { display:block; }
#infoRequestModal #reload { height:38px; min-width:42px; flex-shrink:0; }
@media (max-width: 991px) {
    .prog-layout { flex-direction:column; }
    .prog-chat { width:100%; position:static; }
    .prog-layout.is-chat-collapsed .prog-chat { width:0; height:0; }
    .chat-box { height:399px; min-height:399px; width:100%; }
}
