{"id":187,"date":"2025-12-30T23:57:32","date_gmt":"2025-12-30T20:57:32","guid":{"rendered":"https:\/\/project.arhaero.ru\/?page_id=187"},"modified":"2026-03-17T12:51:47","modified_gmt":"2026-03-17T18:51:47","slug":"%d0%b3%d0%bb%d0%b0%d0%b2%d0%bd%d0%b0%d1%8f","status":"publish","type":"page","link":"https:\/\/project.arhaero.ru\/","title":{"rendered":"\u0413\u041b\u0410\u0412\u041d\u0410\u042f"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"187\" class=\"elementor elementor-187\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ce8e6dd e-con-full mobile-clean-bg e-flex e-con e-parent\" data-id=\"ce8e6dd\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-10a6f3f elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"10a6f3f\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"main-widget-background\">\r\n    \r\n    <div class=\"inner-content-wrapper\">\r\n\r\n        <style>\r\n    \/* =========================================\r\n       0. \u0423\u0411\u0418\u0420\u0410\u0415\u041c \u0413\u041e\u0420\u0418\u0417\u041e\u041d\u0422\u0410\u041b\u042c\u041d\u0423\u042e \u041f\u0420\u041e\u041a\u0420\u0423\u0422\u041a\u0423\r\n       ========================================= *\/\r\n    html, body {\r\n        overflow-x: hidden;\r\n    }\r\n\r\n    \/* =========================================\r\n       1. \u0413\u041b\u041e\u0411\u0410\u041b\u042c\u041d\u042b\u0415 \u041d\u0410\u0421\u0422\u0420\u041e\u0419\u041a\u0418 \u0418 \u0424\u041e\u041d\r\n       ========================================= *\/\r\n    .main-widget-background {\r\n        width: 100vw; \r\n        position: relative;\r\n        left: 50%;\r\n        right: 50%;\r\n        margin-left: -50vw;\r\n        margin-right: -50vw;\r\n        \r\n        min-height: 100vh;\r\n        box-sizing: border-box;\r\n        background-color: #eee; \r\n        \r\n        background-image: url('https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/01\/\u0424\u041e\u041dnew-scaled.png'); \r\n        \r\n        background-size: cover;\r\n        background-position: center top;\r\n        background-repeat: no-repeat;\r\n        background-attachment: scroll; \r\n        \r\n        padding-top: 50px; \r\n        padding-bottom: 0;\r\n        padding-left: 0;\r\n        padding-right: 0;\r\n        margin-top: -15px;\r\n\r\n        overflow-x: hidden; \/* \u2190 \u0414\u041e\u0411\u0410\u0412\u041b\u0415\u041d\u041e *\/\r\n    }\r\n\r\n    \/* --- \u0413\u0420\u0410\u0414\u0418\u0415\u041d\u0422 \u0412\u041d\u0418\u0417\u0423: \u041f\u0415\u0420\u0415\u0425\u041e\u0414 \u0412 \u0411\u0415\u041b\u042b\u0419 --- *\/\r\n    .main-widget-background::after {\r\n        content: '';\r\n        display: block;\r\n        width: 100%;\r\n        height: 80px;\r\n        background: linear-gradient(\r\n            to bottom,\r\n            rgba(255, 255, 255, 0) 0%,\r\n            rgba(255, 255, 255, 0.3) 20%,\r\n            rgba(255, 255, 255, 0.6) 45%,\r\n            rgba(255, 255, 255, 0.85) 70%,\r\n            rgba(255, 255, 255, 1) 100%\r\n        );\r\n        pointer-events: none;\r\n        position: relative;\r\n        z-index: 1;\r\n        margin-top: 0;\r\n    }\r\n\r\n    .inner-content-wrapper {\r\n        width: 100%; \r\n        max-width: none; \r\n        margin: 0;\r\n        padding: 0 30px;\r\n        padding-bottom: 80px;\r\n        position: relative;\r\n        z-index: 2;\r\n    }\r\n\r\n    .main-widget-background * { box-sizing: border-box; outline: none; }\r\n\r\n    \/* =========================================\r\n       2. \u0417\u0410\u0413\u041e\u041b\u041e\u0412\u041e\u041a\r\n       ========================================= *\/\r\n    .airport-main-title {\r\n        color: #FFFFFF;\r\n        font-family: Arial, Helvetica, sans-serif;\r\n        font-weight: 900;\r\n        font-size: 62px; \r\n        line-height: 1.1;\r\n        text-transform: none;\r\n        \r\n        margin-top: 0;\r\n        margin-left: 0; \r\n        margin-bottom: 200px; \r\n        \r\n        text-shadow: 0 2px 10px rgba(0,0,0,0.5);\r\n        text-align: left;\r\n    }\r\n    .airport-main-title span { display: block; }\r\n\r\n    \/* =========================================\r\n       3. \u041e\u0411\u0429\u0418\u0419 \u0411\u041b\u041e\u041a (\u0422\u0410\u0411\u041b\u041e + \u041f\u041b\u0418\u0422\u041a\u0418)\r\n       ========================================= *\/\r\n    .board-and-buttons-wrapper {\r\n        width: 100%;\r\n        max-width: 1100px; \r\n        margin: 0 auto;    \r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 50px; \r\n    }\r\n\r\n    \/* =========================================\r\n       4. \u0422\u0410\u0411\u041b\u041e \u0420\u0415\u0419\u0421\u041e\u0412\r\n       ========================================= *\/\r\n    #unique-flight-widget {\r\n        font-family: Arial, Helvetica, sans-serif;\r\n        width: 100%;\r\n        display: flex;\r\n        flex-direction: column;\r\n    }\r\n\r\n    \/* --- \u0412\u041a\u041b\u0410\u0414\u041a\u0418 (\u041a\u041d\u041e\u041f\u041a\u0418) --- *\/\r\n    #unique-flight-widget .buttons-container {\r\n        display: flex; \r\n        align-items: flex-end; \r\n        padding-left: 0;\r\n        margin-bottom: 0;\r\n        gap: 0; \r\n    }\r\n\r\n    #unique-flight-widget .tab-button {\r\n        border: none; cursor: pointer;\r\n        font-family: Arial, Helvetica, sans-serif;\r\n        font-weight: 900; \r\n        font-size: 24px; \r\n        padding: 12px 35px; \r\n        background: #D3D2D2; \r\n        color: #000000;\r\n        border-radius: 20px 20px 0 0; \r\n        display: flex;\r\n        align-items: center;\r\n        flex-direction: row; \r\n        gap: 15px;\r\n        transition: all 0.2s ease;\r\n        height: 55px;\r\n        margin-bottom: 0;\r\n        position: relative;\r\n    }\r\n    \r\n    #unique-flight-widget .tab-button img {\r\n        height: 28px; width: auto; display: block;\r\n    }\r\n\r\n    #unique-flight-widget .tab-button.active {\r\n        background: #FFFFFF; \r\n        z-index: 10;\r\n        height: 65px; \r\n        padding-bottom: 12px; \r\n        margin-bottom: -1px; \r\n        box-shadow: none;\r\n    }\r\n\r\n    \/* --- \u0422\u0415\u041b\u041e \u0422\u0410\u0411\u041b\u041e --- *\/\r\n    #unique-flight-widget .flight-board {\r\n        background: #FFFFFF;\r\n        border-radius: 0 15px 15px 15px; \r\n        padding: 20px 25px; \r\n        box-shadow: 0 20px 50px rgba(0,0,0,0.3);\r\n        position: relative; \r\n        z-index: 5;\r\n        min-height: 300px;\r\n    }\r\n\r\n    #unique-flight-widget .flight-board.tab-arrival-active {\r\n        border-radius: 0 15px 15px 15px; \r\n    }\r\n\r\n    #unique-flight-widget #tableContent {\r\n        display: flex; flex-direction: column; gap: 8px; \r\n    }\r\n\r\n    #unique-flight-widget .grid-layout {\r\n        grid-template-columns: 0.7fr 0.8fr 1.6fr 1.2fr 1.2fr;\r\n        display: grid; align-items: center; text-align: center; \r\n        gap: 10px; \r\n    }\r\n\r\n    #unique-flight-widget .table-header { \r\n        margin-bottom: 8px; \r\n        padding: 0 5px; \r\n        height: 45px; \r\n        display: grid;\r\n        align-items: center;\r\n    }\r\n    #unique-flight-widget .table-header div {\r\n        font-size: 17px; \r\n        font-weight: 700 !important;\r\n        color: #000000; \r\n        text-transform: none;\r\n    }\r\n\r\n    #unique-flight-widget .flight-row {\r\n        background: #F1F1F1 !important; \r\n        border-radius: 15px; \r\n        padding: 0 5px;\r\n        min-height: 65px; \r\n    }\r\n    #unique-flight-widget .flight-row.completed { opacity: 0.6; }\r\n\r\n    #unique-flight-widget .flight-row > div {\r\n        height: 100%; display: flex; align-items: center; justify-content: center;\r\n        font-size: 18px; \r\n        font-weight: 700 !important; \r\n        color: #000000; \r\n        line-height: 1.1;\r\n    }\r\n\r\n    #unique-flight-widget .status-cell { \r\n        flex-direction: column; \r\n        white-space: normal !important; \r\n        font-size: 16px !important; \r\n    }\r\n\r\n    #unique-flight-widget .status-on-time { color: #000000 !important; }\r\n    #unique-flight-widget .status-delayed { color: #d32f2f !important; } \r\n    #unique-flight-widget .status-process { color: #1976d2 !important; } \r\n    #unique-flight-widget .status-finished { color: #2e7d32 !important; }\r\n    #unique-flight-widget .status-changed { color: #d32f2f !important; }\r\n\r\n    #unique-flight-widget .no-flights { margin: auto; color: #000; font-size: 22px; text-align: center; padding: 40px; }\r\n\r\n    .flight-board-footer {\r\n        margin-top: 20px; \r\n        text-align: center;\r\n        height: 45px; \r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n    }\r\n    .all-flights-link {\r\n        color: #000000;\r\n        font-size: 21px; \r\n        font-weight: 900;\r\n        text-decoration: none;\r\n        transition: opacity 0.3s;\r\n        white-space: nowrap; \r\n        line-height: 1; \r\n    }\r\n    .all-flights-link:hover { opacity: 0.7; }\r\n\r\n    .mobile-flight-num, .mobile-airline-name { display: none; }\r\n    .tomorrow-span::before { content: \"(\"; } .tomorrow-span::after { content: \")\"; }\r\n\r\n\r\n    \/* =========================================\r\n       5. \u041d\u0418\u0416\u041d\u0418\u0415 \u041a\u041d\u041e\u041f\u041a\u0418 (\u041f\u041b\u0418\u0422\u041a\u0418)\r\n       ========================================= *\/\r\n    .ap-buttons-wrapper {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        gap: 20px; \r\n        width: 100%;\r\n    }\r\n\r\n    .ap-btn-item {\r\n        background-color: #D3D2D2; \r\n        border-radius: 15px;\r\n        flex: 1; \r\n        height: 210px; \r\n        display: flex; flex-direction: column;\r\n        justify-content: center; align-items: center;\r\n        text-decoration: none !important;\r\n        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2) !important; \r\n        transition: all 0.3s ease;\r\n        overflow: hidden; \r\n    }\r\n    .ap-btn-item:hover {\r\n        transform: translateY(-5px);\r\n        background-color: #2B2A29; \r\n        box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3) !important;\r\n    }\r\n\r\n    .ap-btn-item img {\r\n        display: block; \r\n        height: 130px; \r\n        width: auto;\r\n        margin-bottom: 10px; \r\n        object-fit: contain;\r\n    }\r\n    \r\n    .ap-btn-item .img-default { display: block; filter: brightness(0) opacity(0.5); }\r\n    .ap-btn-item .img-hover { display: none; filter: none; }\r\n    .ap-btn-item:hover .img-default { display: none; }\r\n    .ap-btn-item:hover .img-hover { display: block; }\r\n\r\n    .ap-btn-item span {\r\n        display: block; color: #ffffff;\r\n        font-weight: 900; text-transform: uppercase;\r\n        font-size: 24px; \r\n        text-align: center;\r\n        letter-spacing: 1px;\r\n    }\r\n\r\n    \/* =========================================\r\n       6. \u0410\u0414\u0410\u041f\u0422\u0418\u0412\u041d\u041e\u0421\u0422\u042c\r\n       ========================================= *\/\r\n    \r\n    @media (max-width: 1600px) {\r\n        .board-and-buttons-wrapper { max-width: 1000px; }\r\n    }\r\n\r\n    @media (max-width: 1440px) {\r\n        .airport-main-title { font-size: 42px; margin-bottom: 240px; }\r\n        \r\n        #unique-flight-widget .tab-button { font-size: 20px; padding: 12px 25px; }\r\n        .board-and-buttons-wrapper { max-width: 900px; } \r\n        \r\n        #unique-flight-widget .flight-row > div { font-size: 17px; }\r\n        #unique-flight-widget .status-cell { font-size: 15px !important; }\r\n        #unique-flight-widget .grid-layout { gap: 8px; }\r\n        #unique-flight-widget .flight-board { padding: 18px 20px; }\r\n        \r\n        .ap-btn-item { height: 180px; }\r\n        .ap-btn-item img { height: 80px; }\r\n        .ap-btn-item span { font-size: 20px; }\r\n\r\n        .main-widget-background::after { height: 70px; }\r\n    }\r\n\r\n    @media (max-width: 1100px) {\r\n        .airport-main-title { margin-bottom: 150px; }\r\n        .ap-btn-item { height: 160px; }\r\n        .ap-btn-item img { height: 70px; }\r\n        .board-and-buttons-wrapper { max-width: 780px; }\r\n        \r\n        #unique-flight-widget .flight-row > div { font-size: 16px; }\r\n        #unique-flight-widget .status-cell { font-size: 14px !important; }\r\n        #unique-flight-widget .grid-layout { gap: 6px; }\r\n        #unique-flight-widget .flight-board { padding: 16px 15px; }\r\n\r\n        .main-widget-background::after { height: 60px; }\r\n    }\r\n\r\n    \/* \u041c\u041e\u0411\u0418\u041b\u042c\u041d\u042b\u0415 \u0422\u0415\u041b\u0415\u0424\u041e\u041d\u042b *\/\r\n    @media (max-width: 900px) {\r\n        .main-widget-background { \r\n            padding-top: 15px; \r\n        }\r\n        .main-widget-background::after { height: 50px; }\r\n        \r\n        .inner-content-wrapper { padding: 0 8px; padding-bottom: 40px; }\r\n        .board-and-buttons-wrapper { max-width: 100%; }\r\n\r\n        .airport-main-title { \r\n            font-size: 26px; \r\n            margin-bottom: 15px;\r\n            text-align: left;\r\n            padding-left: 5px;\r\n        }\r\n\r\n        #unique-flight-widget .flight-board { \r\n            padding: 15px 10px; \r\n            min-height: auto; \r\n            border-radius: 0 20px 20px 20px; \r\n        }\r\n        \r\n        #unique-flight-widget .buttons-container { gap: 0; }\r\n        \r\n        #unique-flight-widget .tab-button { \r\n            font-size: 16px; \r\n            padding: 10px 15px; \r\n            gap: 8px;\r\n            border-radius: 15px 15px 0 0;\r\n            height: 45px;\r\n        }\r\n        #unique-flight-widget .tab-button.active { height: 55px; }\r\n        #unique-flight-widget .tab-button img { height: 18px; }\r\n\r\n        #unique-flight-widget .table-header { display: none !important; }\r\n\r\n        #unique-flight-widget .grid-layout { \r\n            display: grid; \r\n            grid-template-columns: 45px 1fr 110px; \r\n            gap: 5px;\r\n        }\r\n        \r\n        #unique-flight-widget .flight-row { min-height: 60px !important; }\r\n        #unique-flight-widget .flight-row > div { font-size: 14px !important; padding: 0 2px; }\r\n\r\n        #unique-flight-widget .grid-layout > div:nth-child(2), \r\n        #unique-flight-widget .grid-layout > div:nth-child(4) { \r\n            display: none !important; \r\n        }\r\n\r\n        #unique-flight-widget .flight-row > div:nth-child(3) { \r\n            flex-direction: column; align-items: flex-start; text-align: left; padding-left: 10px;\r\n        }\r\n        \r\n        #unique-flight-widget .flight-row > div:nth-child(5) { \r\n            font-size: 11px !important; \r\n            line-height: 1.1; \r\n            width: 100%;\r\n            text-align: center;\r\n            justify-content: center;\r\n        }\r\n        \r\n        .mobile-flight-num { display: block; margin-top: 3px; font-size: 12px !important; color: #444; }\r\n        .mobile-airline-name { display: block; margin-top: 1px; font-size: 11px !important; color: #666; font-weight: 400; text-transform: none; }\r\n        \r\n        #unique-flight-widget .flight-row > div:nth-child(1) { font-weight: 900 !important; }\r\n        .tomorrow-span::before, .tomorrow-span::after { content: \"\" !important; }\r\n        .tomorrow-span { font-size: 10px !important; display: block; margin-top: 2px;}\r\n\r\n        .flight-board-footer { height: 35px; margin-top: 10px; }\r\n        .all-flights-link { font-size: 16px; }\r\n        \r\n        .ap-buttons-wrapper {\r\n            display: grid; \r\n            grid-template-columns: 1fr 1fr; \r\n            gap: 15px; \r\n        }\r\n        .ap-btn-item { \r\n            height: 140px; \r\n            aspect-ratio: auto; \r\n            border-radius: 15px; \r\n        }\r\n        .ap-btn-item img { \r\n            height: 55px; \r\n            margin-bottom: 8px; \r\n        }\r\n        .ap-btn-item span { \r\n            font-size: 14px; \r\n            line-height: 1.1;\r\n        }\r\n    }\r\n\r\n<\/style>\r\n\r\n        <h1 class=\"airport-main-title\">\r\n            <span>\u041c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0439 \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442<\/span>\r\n            <span>\u0410\u0440\u0445\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a<\/span>\r\n            <span>\u0418\u043c\u0435\u043d\u0438 \u0424. \u0410. \u0410\u0431\u0440\u0430\u043c\u043e\u0432\u0430<\/span>\r\n        <\/h1>\r\n\r\n        <div class=\"board-and-buttons-wrapper\">\r\n\r\n            <div id=\"unique-flight-widget\">\r\n                \r\n                <div class=\"buttons-container\">\r\n                    <button class=\"tab-button active\" onclick=\"window.uniqueFlightWidget?.showDepartures()\">\r\n                        \u0412\u044b\u043b\u0435\u0442 \r\n                        <img decoding=\"async\" src=\"https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/02\/departures-icon.png\" alt=\"\">\r\n                    <\/button>\r\n                    <button class=\"tab-button\" onclick=\"window.uniqueFlightWidget?.showArrivals()\">\r\n                        \u041f\u0440\u0438\u043b\u0435\u0442\r\n                        <img decoding=\"async\" src=\"https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/02\/arrivals-icon.png\" alt=\"\">\r\n                    <\/button>\r\n                <\/div>\r\n                \r\n                <div class=\"flight-board\">\r\n                    <div id=\"tableContent\">\r\n                        <\/div>\r\n\r\n                    <div class=\"flight-board-footer\">\r\n                        <a href=\"https:\/\/project.arhaero.ru\/?page_id=664\" class=\"all-flights-link\">\r\n                            \u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d-\u0442\u0430\u0431\u043b\u043e &gt;\r\n                        <\/a>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"ap-buttons-wrapper\">\r\n                <a href=\"https:\/\/project.arhaero.ru\/?page_id=2469\" class=\"ap-btn-item\">\r\n                    <img decoding=\"async\" src=\"https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/02\/\u0422\u0420\u0410\u041d\u0421\u041f\u041e\u0420\u0422.png\" class=\"img-default\" alt=\"\u0422\u0430\u0431\u043b\u043e \u0440\u0435\u0439\u0441\u043e\u0432\">\r\n                    <img decoding=\"async\" src=\"https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/02\/\u0422\u0420\u0410\u041d\u0421\u041f\u041e\u0420\u0422-\u041e\u0420\u0416.png\" class=\"img-hover\" alt=\"\u0422\u0430\u0431\u043b\u043e \u0440\u0435\u0439\u0441\u043e\u0432\">\r\n                    <span>\u0422\u0420\u0410\u041d\u0421\u041f\u041e\u0420\u0422<\/span>\r\n                <\/a>\r\n\r\n                <a href=\"https:\/\/project.arhaero.ru\/?page_id=828\" class=\"ap-btn-item\">\r\n                    <img decoding=\"async\" src=\"https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/01\/VIP.png\" class=\"img-default\" alt=\"VIP\">\r\n                    <img decoding=\"async\" src=\"https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/01\/VIP-\u041e\u0420\u0416.png\" class=\"img-hover\" alt=\"VIP\">\r\n                    <span>VIP<\/span>\r\n                <\/a>\r\n\r\n                <a href=\"https:\/\/project.arhaero.ru\/?page_id=839\" class=\"ap-btn-item\">\r\n                    <img decoding=\"async\" src=\"https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/01\/\u041f\u0410\u0421\u0421\u0410\u0416\u0418\u0420\u0410\u041c.png\" class=\"img-default\" alt=\"\u041f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u0430\u043c\">\r\n                    <img decoding=\"async\" src=\"https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/01\/\u041f\u0410\u0421\u0421\u0410\u0416\u0418\u0420\u0410\u041c-\u041e\u0420\u0416.png\" class=\"img-hover\" alt=\"\u041f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u0430\u043c\">\r\n                    <span>\u041f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u0430\u043c<\/span>\r\n                <\/a>\r\n\r\n                <a href=\"https:\/\/project.arhaero.ru\/?page_id=818\" class=\"ap-btn-item\">\r\n                    <img decoding=\"async\" src=\"https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/01\/\u041f\u0410\u0420\u041a\u041e\u0412\u041a\u0410.png\" class=\"img-default\" alt=\"\u041f\u0430\u0440\u043a\u043e\u0432\u043a\u0430\">\r\n                    <img decoding=\"async\" src=\"https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/01\/\u041f\u0410\u0420\u041a\u041e\u0412\u041a\u0410-\u041e\u0420\u0416.png\" class=\"img-hover\" alt=\"\u041f\u0430\u0440\u043a\u043e\u0432\u043a\u0430\">\r\n                    <span>\u041f\u0430\u0440\u043a\u043e\u0432\u043a\u0430<\/span>\r\n                <\/a>\r\n            <\/div>\r\n\r\n        <\/div> \r\n        \r\n    <\/div> \r\n\r\n<\/div> \r\n\r\n<script>\r\nwindow.uniqueFlightWidget = (function() { \r\n    let currentTab = 'departures';\r\n    let flightsData = { arrivals: [], departures: [] };\r\n    \r\n    const filePaths = {\r\n        arrivals: '\/wp-content\/uploads\/flights\/online_arrivals.csv',\r\n        departures: '\/wp-content\/uploads\/flights\/online_departures.csv'\r\n    };\r\n    \r\n    async function loadCSV(fileType) {\r\n        try {\r\n            const filePath = filePaths[fileType];\r\n            const timestamp = new Date().getTime();\r\n            const response = await fetch(`${filePath}?t=${timestamp}`);\r\n            if (!response.ok) return null;\r\n            const buffer = await response.arrayBuffer();\r\n            const decoder = new TextDecoder('windows-1251');\r\n            return parseCSV(decoder.decode(buffer));\r\n        } catch (e) { return null; }\r\n    }\r\n    \r\n    function parseCSV(csvText) {\r\n        if(!csvText) return [];\r\n        const rows = csvText.split('\\n');\r\n        if (rows.length < 2) return [];\r\n        const headers = rows[0].split('|').map(h => h.trim());\r\n        return rows.slice(1).map(row => {\r\n            if (!row.trim()) return null;\r\n            const cells = row.split('|');\r\n            let obj = {};\r\n            headers.forEach((h, i) => obj[h] = cells[i]?.trim() || '');\r\n            return obj;\r\n        }).filter(r => r);\r\n    }\r\n\r\n    function getTodayDate() {\r\n        const d = new Date();\r\n        return `${String(d.getDate()).padStart(2,'0')}.${String(d.getMonth()+1).padStart(2,'0')}.${d.getFullYear()}`;\r\n    }\r\n\r\n    function getNextDayDate() {\r\n        const d = new Date();\r\n        d.setDate(d.getDate() + 1);\r\n        return `${String(d.getDate()).padStart(2,'0')}.${String(d.getMonth()+1).padStart(2,'0')}.${d.getFullYear()}`;\r\n    }\r\n    \r\n    function formatTime(t) {\r\n        if (!t || t === '--:--') return '--:--';\r\n        return t.length === 4 ? '0' + t : t;\r\n    }\r\n    \r\n    function timeToMinutes(timeStr) {\r\n        if (!timeStr || timeStr === '--:--') return 0;\r\n        const time = formatTime(timeStr);\r\n        const [hours, minutes] = time.split(':').map(Number);\r\n        return hours * 60 + minutes;\r\n    }\r\n    \r\n    function getCurrentTimeMinutes() {\r\n        const now = new Date();\r\n        return now.getHours() * 60 + now.getMinutes();\r\n    }\r\n    \r\n    function cleanDuplicateStatus(statusText) {\r\n        if (!statusText || statusText === '\u041f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e') return statusText;\r\n        let cleaned = statusText.trim();\r\n        const length = cleaned.length;\r\n        if (length > 50) {\r\n            const half = Math.floor(length \/ 2);\r\n            if (cleaned.substring(half).startsWith(cleaned.substring(0, Math.min(half, 30)))) {\r\n                return cleaned.substring(0, half).trim();\r\n            }\r\n        }\r\n        return cleaned;\r\n    }\r\n    \r\n    function getStatusColorClass(text, type) {\r\n        const lowerText = text.toLowerCase().replace(\/\u0451\/g, '\u0435');\r\n        \r\n        if (lowerText.includes('\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435') || lowerText.includes('\u043f\u0435\u0440\u0435\u043d\u043e\u0441')) {\r\n            return 'status-changed';\r\n        }\r\n        if (lowerText.includes('\u0437\u0430\u0434\u0435\u0440\u0436\u0430\u043d') || lowerText.includes('\u0437\u0430\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f') || \r\n            lowerText.includes('\u043e\u0442\u043b\u043e\u0436\u0435\u043d') || lowerText.includes('\u043e\u0442\u043c\u0435\u043d\u0435\u043d')) return 'status-delayed';\r\n        if (lowerText.includes('\u0432\u044b\u043b\u0435\u0442\u0435\u043b') || lowerText.includes('\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d')) {\r\n             if (type === 'arrivals') { return 'status-process'; }\r\n             return 'status-finished';\r\n        }\r\n        if (lowerText.includes('\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u043b \u043f\u043e\u0441\u0430\u0434\u043a\u0443') || lowerText.includes('\u043f\u0440\u0438\u0431\u044b\u043b') || lowerText.includes('\u043f\u0440\u0438\u0437\u0435\u043c\u043b\u0438\u043b\u0441\u044f')) return 'status-finished';\r\n        if (lowerText.includes('\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f') || lowerText.includes('\u043f\u043e\u0441\u0430\u0434\u043a\u0430') || lowerText.includes('\u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f') || \r\n            lowerText.includes('\u0432\u0437\u043b\u0435\u0442') || lowerText.includes('\u0433\u043e\u0442\u043e\u0432') || lowerText.includes('\u043f\u0440\u0438\u0431\u044b\u0432\u0430\u0435\u0442')) return 'status-process';\r\n        return 'status-on-time';\r\n    }\r\n    \r\n    function formatStatusText(remark, type) {\r\n        let statusText = cleanDuplicateStatus(remark) || '\u041f\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e';\r\n        statusText = statusText.replace(\/\\.(?!\\s)\/g, '. ');\r\n        const statusClass = getStatusColorClass(statusText, type);\r\n        return { text: statusText, class: statusClass, completed: (statusClass === 'status-finished') };\r\n    }\r\n    \r\n    function prepareFlightsData(flights, type) {\r\n        if(!flights) return [];\r\n        const todayStr = getTodayDate();\r\n        const nowMinutes = getCurrentTimeMinutes();\r\n        const cutoffTime = nowMinutes - 15; \r\n        \r\n        const completedFlights = [];\r\n        const upcomingFlights = [];\r\n        \r\n        flights.forEach(flight => {\r\n            const status = formatStatusText(flight.REMARK || '', type);\r\n            const isTomorrow = (flight.SD1 !== todayStr);\r\n            const baseMinutes = timeToMinutes(flight.ST1);\r\n            const actualBaseMinutes = flight.AT1 ? timeToMinutes(flight.AT1) : baseMinutes;\r\n            const sortTime = isTomorrow ? (baseMinutes + 1440) : baseMinutes;\r\n            const actualSortTime = isTomorrow ? (actualBaseMinutes + 1440) : actualBaseMinutes;\r\n            flight.isNextDay = isTomorrow;\r\n\r\n            if (status.completed && !isTomorrow) {\r\n                completedFlights.push({ ...flight, time: actualSortTime, status });\r\n            } else {\r\n                upcomingFlights.push({ ...flight, time: sortTime, status });\r\n            }\r\n        });\r\n        \r\n        completedFlights.sort((a, b) => b.time - a.time);\r\n        const recentCompleted = completedFlights.filter(f => f.time >= cutoffTime);\r\n        upcomingFlights.sort((a, b) => a.time - b.time);\r\n        \r\n        let finalFlights = [];\r\n        if (recentCompleted.length > 0) finalFlights.push(recentCompleted[0]);\r\n        const slotsLeft = 5 - finalFlights.length;\r\n        finalFlights = finalFlights.concat(upcomingFlights.slice(0, slotsLeft));\r\n        if (finalFlights.length === 0 && upcomingFlights.length > 0) finalFlights = upcomingFlights.slice(0, 5);\r\n        return finalFlights;\r\n    }\r\n\r\n    function getHeaderHTML() {\r\n        const destCol = currentTab === 'departures' ? '\u041d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435' : '\u041e\u0442\u043a\u0443\u0434\u0430';\r\n        return `\r\n            <div class=\"table-header grid-layout\">\r\n                <div>\u0412\u0440\u0435\u043c\u044f<\/div>\r\n                <div>\u0420\u0435\u0439\u0441<\/div>\r\n                <div>${destCol}<\/div>\r\n                <div>\u0410\u0432\u0438\u0430\u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f<\/div>\r\n                <div>\u0421\u0442\u0430\u0442\u0443\u0441<\/div>\r\n            <\/div>`;\r\n    }\r\n\r\n    function renderFlightsTable() {\r\n        const container = document.getElementById('unique-flight-widget')?.querySelector('#tableContent');\r\n        if(!container) return; \r\n\r\n        const today = getTodayDate();\r\n        const tomorrow = getNextDayDate();\r\n        const rawFlights = flightsData[currentTab] || [];\r\n        let flights = rawFlights.filter(f => f.SD1 === today || f.SD1 === tomorrow);\r\n        \r\n        let html = '';\r\n        html = getHeaderHTML(); \r\n\r\n        if (flights.length === 0) {\r\n            container.innerHTML = html + `<div class=\"no-flights\">\u0420\u0435\u0439\u0441\u043e\u0432 \u043d\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435\u0442<\/div>`;\r\n            return;\r\n        }\r\n        \r\n        const preparedFlights = prepareFlightsData(flights, currentTab);\r\n        if (preparedFlights.length === 0) {\r\n            container.innerHTML = html + `<div class=\"no-flights\">\u0420\u0435\u0439\u0441\u043e\u0432 \u043d\u0430 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043d\u0435\u0442<\/div>`;\r\n            return;\r\n        }\r\n        \r\n        preparedFlights.forEach(f => {\r\n            const st = f.status;\r\n            const dest = f.ROUTE;\r\n            const timeDisplay = formatTime(f.ST1) + (f.isNextDay ? ' <span class=\"tomorrow-span\" style=\"font-size:10px;color:#666;\">\u0437\u0430\u0432\u0442\u0440\u0430<\/span>' : '');\r\n\r\n            html += `\r\n            <div class=\"flight-row grid-layout ${f.status.completed ? 'completed' : ''}\">\r\n                <div style=\"flex-direction:column;\">${timeDisplay}<\/div>\r\n                <div>${f.FLIGHT}<\/div>\r\n                <div style=\"font-size: inherit; display:flex; flex-direction:column; justify-content:center;\">\r\n                    <span style=\"font-weight:700; font-size: inherit;\">${dest}<\/span>\r\n                    <span class=\"mobile-flight-num\">${f.FLIGHT}<\/span>\r\n                    <span class=\"mobile-airline-name\">${f.COMPANY}<\/span>\r\n                <\/div>\r\n                <div>${f.COMPANY}<\/div>\r\n                <div class=\"status-cell ${st.class}\">${st.text}<\/div>\r\n            <\/div>\r\n            `;\r\n        });\r\n        container.innerHTML = html;\r\n    }\r\n    \r\n    function showDepartures() { currentTab = 'departures'; toggleTabs(); renderFlightsTable(); }\r\n    function showArrivals() { currentTab = 'arrivals'; toggleTabs(); renderFlightsTable(); }\r\n    \r\n    function toggleTabs() {\r\n        const wrapper = document.getElementById('unique-flight-widget');\r\n        const board = wrapper.querySelector('.flight-board');\r\n        const tabs = wrapper.querySelectorAll('.tab-button');\r\n        \r\n        tabs.forEach(t => {\r\n            const isDep = t.textContent.includes('\u0412\u044b\u043b\u0435\u0442');\r\n            const isArr = t.textContent.includes('\u041f\u0440\u0438\u043b\u0435\u0442');\r\n            \r\n            if ((currentTab === 'departures' && isDep) || (currentTab === 'arrivals' && isArr)) {\r\n                t.classList.add('active');\r\n            } else {\r\n                t.classList.remove('active');\r\n            }\r\n        });\r\n\r\n        if (currentTab === 'arrivals') {\r\n            board.classList.add('tab-arrival-active');\r\n        } else {\r\n            board.classList.remove('tab-arrival-active');\r\n        }\r\n    }\r\n\r\n    function handleResize() { renderFlightsTable(); }\r\n    \r\n    async function updateData() {\r\n        const newDepartures = await loadCSV('departures');\r\n        const newArrivals = await loadCSV('arrivals');\r\n        if (newDepartures !== null) flightsData.departures = newDepartures;\r\n        if (newArrivals !== null) flightsData.arrivals = newArrivals;\r\n        renderFlightsTable();\r\n    }\r\n\r\n    async function init() {\r\n        await updateData(); \r\n        toggleTabs(); \r\n        window.addEventListener('resize', handleResize);\r\n        setInterval(updateData, 30000);\r\n        document.addEventListener(\"visibilitychange\", () => {\r\n             if (document.visibilityState === 'visible') setTimeout(updateData, 500);\r\n        });\r\n    }\r\n    \r\n    return { showDepartures, showArrivals, init };\r\n})();\r\n\r\nif (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', () => { window.uniqueFlightWidget?.init(); });\r\n} else {\r\n    window.uniqueFlightWidget?.init();\r\n}\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0ad6746 elementor-widget elementor-widget-shortcode\" data-id=\"0ad6746\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    \n    <!-- \u041e\u0411\u042f\u0417\u0410\u0422\u0415\u041b\u042c\u041d\u041e: \u041e\u0431\u0451\u0440\u0442\u043a\u0430 \u0441 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 Elementor -->\n    <div class=\"elementor-widget-container\">\n        <div class=\"ng-wrapper\" id=\"news_grid_4343\">\n            <div class=\"ng-header\">\u041d\u041e\u0412\u041e\u0421\u0422\u0418<\/div>\n            \n            <div class=\"ng-grid\">\n                                    <a href=\"https:\/\/project.arhaero.ru\/?p=2744\" class=\"ng-card\">\n                                                    <div class=\"ng-card-bg\" style=\"background-image: url('https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/03\/8e114d284f1fccc17a686b4abb5950bf-1024x576.jpg');\"><\/div>\n                                                \n                        <div class=\"ng-card-overlay\"><\/div>\n                        <div class=\"ng-card-title\">\u0421 01 \u0438\u044e\u043d\u044f \u0438\u0437 \u0410\u0440\u0445\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a\u0430 \u0432 \u041a\u0430\u0437\u0430\u043d\u044c<\/div>\n                    <\/a>\n                                    <a href=\"https:\/\/project.arhaero.ru\/?p=2734\" class=\"ng-card\">\n                                                    <div class=\"ng-card-bg\" style=\"background-image: url('https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/03\/IMG_9438-1024x683.jpg');\"><\/div>\n                                                \n                        <div class=\"ng-card-overlay\"><\/div>\n                        <div class=\"ng-card-title\">\u0421 \u0414\u043d\u0435\u043c \u0433\u0440\u0430\u0436\u0434\u0430\u043d\u0441\u043a\u043e\u0439 \u0430\u0432\u0438\u0430\u0446\u0438\u0438 \u0420\u043e\u0441\u0441\u0438\u0438!<\/div>\n                    <\/a>\n                                    <a href=\"https:\/\/project.arhaero.ru\/?p=2727\" class=\"ng-card\">\n                                                    <div class=\"ng-card-bg\" style=\"background-image: url('https:\/\/project.arhaero.ru\/wp-content\/uploads\/2026\/03\/ab30150d868ddf36adce3e4900bb77cc-1024x696.jpg');\"><\/div>\n                                                \n                        <div class=\"ng-card-overlay\"><\/div>\n                        <div class=\"ng-card-title\">\u041a\u043e\u0442\u043b\u0430\u0441 &#8212; \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433 \u0441 \u0420\u0443\u0441\u041b\u0430\u0439\u043d<\/div>\n                    <\/a>\n                                    <a href=\"https:\/\/project.arhaero.ru\/?p=1297\" class=\"ng-card\">\n                                                    <div class=\"ng-card-bg\" style=\"background-image: url('https:\/\/project.arhaero.ru\/wp-content\/uploads\/2025\/12\/IMG_3462-1024x683.webp');\"><\/div>\n                                                \n                        <div class=\"ng-card-overlay\"><\/div>\n                        <div class=\"ng-card-title\">\u0418\u041b-14<\/div>\n                    <\/a>\n                            <\/div>\n        <\/div>\n    <\/div>\n\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u041c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0439 \u0430\u044d\u0440\u043e\u043f\u043e\u0440\u0442 \u0410\u0440\u0445\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a \u0418\u043c\u0435\u043d\u0438 \u0424. \u0410. \u0410\u0431\u0440\u0430\u043c\u043e\u0432\u0430 \u0412\u044b\u043b\u0435\u0442 \u041f\u0440\u0438\u043b\u0435\u0442 \u041e\u0442\u043a\u0440\u044b\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d-\u0442\u0430\u0431\u043b\u043e &gt; \u0422\u0420\u0410\u041d\u0421\u041f\u041e\u0420\u0422 VIP \u041f\u0430\u0441\u0441\u0430\u0436\u0438\u0440\u0430\u043c \u041f\u0430\u0440\u043a\u043e\u0432\u043a\u0430<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-187","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/project.arhaero.ru\/index.php?rest_route=\/wp\/v2\/pages\/187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/project.arhaero.ru\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/project.arhaero.ru\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/project.arhaero.ru\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/project.arhaero.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=187"}],"version-history":[{"count":889,"href":"https:\/\/project.arhaero.ru\/index.php?rest_route=\/wp\/v2\/pages\/187\/revisions"}],"predecessor-version":[{"id":2770,"href":"https:\/\/project.arhaero.ru\/index.php?rest_route=\/wp\/v2\/pages\/187\/revisions\/2770"}],"wp:attachment":[{"href":"https:\/\/project.arhaero.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}