/* Shared responsive and performance fixes for the public blog theme. */
*, *::before, *::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
}

body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
}

img, video, canvas, svg, iframe {
    max-width: 100%;
}

img, video {
    height: auto;
}

iframe {
    border: 0;
}

table {
    max-width: 100%;
}

pre, code {
    white-space: pre-wrap;
    word-break: break-word;
}

pre,
.post-content pre,
.airjournal-article pre,
.markdown-body pre,
.code-body {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
}

.post-content table,
.airjournal-article table,
.markdown-body table {
    border-collapse: collapse;
}

.responsive-table {
    width: 100%;
    max-width: 100%;
    margin: 1.2em 0;
    overflow-x: auto !important;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    border: 1px solid #e6edf5;
    border-radius: 14px;
    background: #fff;
}

.responsive-table table,
.post-content .responsive-table table,
.airjournal-article .responsive-table table,
.markdown-body .responsive-table table {
    display: table !important;
    width: max-content !important;
    min-width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
}

.responsive-table th,
.responsive-table td {
    min-width: 128px;
    white-space: nowrap;
}

.responsive-table:focus {
    outline: 2px solid rgba(73, 104, 242, .36);
    outline-offset: 2px;
}

.air-post-card[data-href] {
    cursor: pointer;
}

.air-post-card[data-href]:focus-visible {
    outline: 2px solid rgba(73, 104, 242, .45);
    outline-offset: 4px;
}

@keyframes airMobileBackTopIn {
    0% {
        opacity: 0;
        transform: translateY(18px) scale(.78);
    }
    70% {
        opacity: 1;
        transform: translateY(-3px) scale(1.04);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes airMobileBackTopTap {
    0% {
        transform: translateY(0) scale(1);
    }
    45% {
        transform: translateY(-5px) scale(.94);
    }
    100% {
        transform: translateY(0) scale(1);
    }
}

.post-content img,
.airjournal-article img,
.comment-content img,
.message-content img {
    max-width: 100% !important;
    height: auto !important;
    object-fit: contain;
}

.main-content,
.page-page,
.post-page,
.post-content,
.air-shell,
.cat-container {
    min-width: 0;
}

.post-content,
.comment-content,
.air-post-card,
.cat-card,
.archive-post-main {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.search-overlay {
    padding-left: 16px !important;
    padding-right: 16px !important;
}

.search-dialog {
    max-width: min(580px, calc(100vw - 32px)) !important;
}

.search-input-area {
    min-width: 0;
}

.search-input-field {
    min-width: 0;
}

.navbar-mobile-menu ul {
    max-height: calc(100dvh - 78px);
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
}

.lightbox,
#lightbox {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-width: 100vw !important;
    min-height: 100dvh !important;
    margin: 0 !important;
    padding: max(18px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left)) !important;
    display: none;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(15, 23, 42, .88) !important;
    z-index: 2147483000 !important;
    overflow: hidden !important;
    touch-action: none;
    isolation: isolate;
}

#lightboxImg,
#lightbox img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: min(94vw, 1280px) !important;
    max-height: calc(100dvh - 96px) !important;
    margin: auto !important;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .35);
    transform-origin: center center !important;
}

#prevButton,
#nextButton,
#zoomIn,
#zoomOut {
    touch-action: manipulation;
    z-index: 2147483001 !important;
}

.reply-modal,
.ai-chat-panel,
.ai-chat-window {
    max-width: 100vw;
}

.airjournal-page,
.airjournal-home,
.airjournal-archives,
.airjournal-about,
.airjournal-category,
.airjournal-article {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: clip !important;
}

.air-shell,
.archive-layout,
.air-layout,
.cat-container,
.post-page-wrapper,
.air-post-wrapper {
    max-width: min(var(--air-max, 1180px), calc(100vw - 32px)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.emoji-panel {
    max-width: calc(100vw - 32px) !important;
}

.air-post-card {
    max-height: none !important;
}

.home-now-card,
.air-side-card,
.home-widget,
.archive-month-card,
.cat-hero-inner,
.air-layout > *,
.archive-layout > *,
.air-post-list,
.cat-grid {
    min-width: 0;
}

#map {
    width: min(94vw, 760px) !important;
    height: min(82dvh, 760px) !important;
}

@media (max-width: 1024px) {
    .navbar-container {
        width: calc(100% - 32px) !important;
        justify-content: space-between !important;
    }

    .navbar-logo {
        position: static !important;
        transform: none !important;
        flex: 0 1 auto !important;
        min-width: 0 !important;
        max-width: calc(100% - 108px);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .navbar-menu,
    .navbar-search-wrapper {
        display: none !important;
    }

    .navbar-mobile-menu {
        display: flex !important;
        align-items: center;
        justify-content: center;
        margin-left: auto;
    }

    .air-shell {
        width: calc(100% - 32px);
        padding-top: 32px;
        padding-bottom: 48px;
    }

    .air-hero,
    .air-layout,
    .archive-layout {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .air-layout > *,
    .archive-layout > *,
    .air-post-list,
    .cat-grid {
        width: 100% !important;
        max-width: 100% !important;
        grid-template-columns: minmax(0, 1fr) !important;
    }

    body .air-shell .air-layout,
    body .air-shell .air-post-list,
    body .air-shell .air-side-stack {
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        grid-template-columns: minmax(0, 100%) !important;
    }

    body .air-shell .air-layout > *,
    body .air-shell .air-post-list > * {
        min-width: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .air-side-stack,
    .archive-year-rail {
        position: static !important;
        width: 100% !important;
    }

    .archive-year-rail {
        display: flex !important;
        gap: 10px;
        overflow-x: auto;
        padding-bottom: 6px;
        -webkit-overflow-scrolling: touch;
    }

    .archive-year-rail a {
        flex: 0 0 auto;
    }
}

@media (max-width: 768px) {
    #header.header,
    .header.bg-white {
        height: 64px !important;
    }

    .navbar-container {
        height: 64px !important;
        width: calc(100% - 24px) !important;
    }

    .navbar-logo {
        font-size: 15px !important;
    }

    .navbar-logo::before {
        width: 32px !important;
        height: 32px !important;
        border-radius: 10px !important;
        font-size: 15px !important;
    }

    .air-shell {
        width: calc(100% - 24px);
        padding-top: 24px;
    }

    .air-hero h1,
    .air-page-head h1,
    .post-title {
        font-size: clamp(26px, 8vw, 38px) !important;
        line-height: 1.18 !important;
    }

    .air-hero .lead,
    .air-page-head p,
    .post-content {
        font-size: 16px !important;
        line-height: 1.78 !important;
    }

    .air-post-card {
        min-height: 0 !important;
        padding: 20px !important;
    }

    .air-post-card p {
        -webkit-line-clamp: 4 !important;
        max-height: none !important;
    }

    .air-actions,
    .air-pagination,
    .cat-hero-stats,
    .air-tag-row {
        gap: 10px !important;
    }

    .air-btn,
    .air-page-link,
    .cat-hero-stat-pill {
        min-height: 40px;
        white-space: nowrap;
    }

    .cat-hero {
        padding-top: 32px !important;
    }

    .cat-hero-inner {
        align-items: flex-start !important;
        padding: 20px !important;
    }

    .cat-grid {
        grid-template-columns: 1fr !important;
    }

    .main-content {
        width: calc(100% - 24px) !important;
        max-width: none !important;
        margin: 84px auto 24px !important;
        padding: 20px !important;
    }

    .post-content ul,
    .post-content ol {
        padding-left: 1.25em !important;
    }

    .post-content td,
    .post-content th {
        min-width: 120px;
        padding: 8px 10px !important;
    }

    #prevButton,
    #nextButton {
        width: 42px !important;
        height: 42px !important;
        font-size: 20px !important;
    }

    #prevButton {
        left: 10px !important;
    }

    #nextButton {
        right: 10px !important;
    }

    #zoomIn,
    #zoomOut {
        bottom: max(12px, env(safe-area-inset-bottom)) !important;
    }

    .reply-modal > .modal-content {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
        max-height: calc(100dvh - 24px) !important;
    }

    .reply-modal #reply-editable,
    #comment-editable {
        min-height: 140px !important;
        max-height: 38dvh !important;
    }

.footer-container,
.footer-info-content {
    width: 100% !important;
    max-width: 100% !important;
}

.weather-widget,
.daily-quote,
.love-timer {
    max-width: 100% !important;
}
}

@media (max-width: 480px) {
    .search-overlay {
        align-items: flex-start !important;
        padding-top: 72px !important;
    }

    .search-input-area {
        height: auto !important;
        min-height: 58px;
        padding: 10px 12px !important;
        gap: 8px !important;
    }

    .search-submit-btn {
        padding: 0 10px !important;
    }

    .air-meta-row > div,
    .home-widget,
    .air-side-card,
    .home-now-card,
    .archive-month-card,
    .weather-widget,
    .daily-quote,
    .love-timer {
        width: 100%;
        min-width: 0 !important;
    }

    .cat-hero-inner {
        flex-direction: column;
    }

    .cat-hero-stats,
    .air-pagination {
        overflow-x: auto;
        flex-wrap: nowrap !important;
        -webkit-overflow-scrolling: touch;
    }

    .air-pagination .air-page-link {
        flex: 0 0 auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
    }
}

/* Final mobile containment pass for the legacy Pinghsu chrome and article pages. */
@media (max-width: 1024px) {
    #header.header,
    .header.bg-white {
        overflow: visible !important;
    }

    .navbar-container {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
        width: calc(100% - 24px) !important;
        max-width: 100% !important;
    }

    .navbar-logo {
        position: static !important;
        flex: 1 1 auto !important;
        min-width: 0 !important;
        max-width: calc(100vw - 132px) !important;
        height: auto !important;
        margin: 0 !important;
        line-height: 1.15 !important;
        transform: none !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body .navbar-container > .navbar-menu {
        display: none !important;
    }

    .navbar-search-wrapper {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 44px !important;
        width: 44px !important;
        min-width: 44px !important;
        margin-left: auto !important;
    }

    .search-trigger {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
    }

    .navbar-mobile-menu {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 44px !important;
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        margin-left: 0 !important;
        padding: 0 !important;
        line-height: 1 !important;
        position: relative !important;
        z-index: 20 !important;
    }

    .navbar-mobile-menu ul {
        left: auto !important;
        right: 0 !important;
        width: min(72vw, 260px) !important;
        margin: 0 !important;
        text-align: left !important;
        transform: translateX(0) translateY(0) translateZ(0) !important;
    }

    .navbar-mobile-menu ul li,
    .navbar-mobile-menu ul li a {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .navbar-mobile-menu ul li a {
        padding: 12px 18px !important;
    }

    body.airjournal-article {
        overflow-x: hidden !important;
    }

    body.airjournal-article .post-page-wrapper,
    body.airjournal-article .post-page-wrapper.air-post-wrapper,
    body.airjournal-article .air-post-wrapper {
        display: block !important;
        width: 100% !important;
        max-width: 100vw !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 78px 12px 36px !important;
        overflow: hidden !important;
    }

    body.airjournal-article .post-sidebar-left,
    body.airjournal-article .sidebar-left-inner {
        display: none !important;
        visibility: hidden !important;
        width: 0 !important;
        min-width: 0 !important;
        max-width: 0 !important;
        height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        position: absolute !important;
        inset: auto !important;
    }

    body.airjournal-article .main-content.page-page,
    body.airjournal-article .main-content.page-page.air-article-card {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 auto !important;
        padding: 28px 20px !important;
        border-radius: 22px !important;
    }

    body.airjournal-article .post-main,
    body.airjournal-article .post-header,
    body.airjournal-article .post-content,
    body.airjournal-article #post-content {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    body.airjournal-article .post-data {
        justify-content: flex-start !important;
    }
}

@media (max-width: 768px) {
    body.airjournal-article .post-page-wrapper,
    body.airjournal-article .post-page-wrapper.air-post-wrapper,
    body.airjournal-article .air-post-wrapper {
        padding: 76px 10px 30px !important;
    }

    body.airjournal-article .main-content.page-page,
    body.airjournal-article .main-content.page-page.air-article-card {
        width: 100% !important;
        margin: 0 !important;
        padding: 22px 14px !important;
        border-radius: 18px !important;
    }

    body.airjournal-article .post-title {
        font-size: clamp(24px, 7.2vw, 32px) !important;
        line-height: 1.2 !important;
        text-align: left !important;
    }

    body.airjournal-article .post-data {
        gap: 8px !important;
        font-size: 12px !important;
    }
}

/* Targeted mobile polish: header actions, menu panel, pagination and archives. */
@media (max-width: 1024px) {
    .navbar-search-wrapper {
        order: 3 !important;
        flex: 0 0 44px !important;
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        margin-left: 0 !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .navbar-mobile-menu {
        order: 2 !important;
        flex: 0 0 44px !important;
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        margin: 0 0 0 auto !important;
        padding: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: 1 !important;
        color: #0f172a !important;
    }

    .search-trigger,
    .navbar-mobile-menu {
        border-radius: 14px !important;
        -webkit-tap-highlight-color: transparent;
    }

    .search-trigger i {
        display: block !important;
        font-size: 18px !important;
        line-height: 1 !important;
    }

    .navbar-mobile-menu .icon-menu {
        width: 20px !important;
        height: 14px !important;
        margin: 0 !important;
        display: block !important;
    }

    .navbar-mobile-menu .icon-menu .middle,
    .navbar-mobile-menu .icon-menu::before,
    .navbar-mobile-menu .icon-menu::after {
        left: 0 !important;
        width: 20px !important;
        height: 2px !important;
        background: currentColor !important;
        border-radius: 999px !important;
    }

    .navbar-mobile-menu ul {
        top: calc(100% + 8px) !important;
        right: 0 !important;
        left: auto !important;
        width: 112px !important;
        max-width: calc(100vw - 24px) !important;
        max-height: calc(100dvh - 84px) !important;
        margin: 0 !important;
        padding: 8px !important;
        display: block !important;
        overflow: hidden !important;
        clip: auto !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transform: translateY(-8px) scale(.98) !important;
        transform-origin: top right !important;
        border: 1px solid rgba(148, 163, 184, .22) !important;
        border-radius: 18px !important;
        background: #fff !important;
        box-shadow: 0 18px 44px rgba(15, 23, 42, .16) !important;
        transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
        z-index: 1000 !important;
    }

    .navbar-mobile-menu.is-open ul {
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        transform: translateY(0) scale(1) !important;
    }

    .navbar-mobile-menu ul li {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
    }

    .navbar-mobile-menu ul li a {
        width: 100% !important;
        height: 44px !important;
        padding: 0 14px !important;
        display: flex !important;
        align-items: center !important;
        line-height: 1 !important;
        border-radius: 12px !important;
        background: transparent !important;
        color: #0f172a !important;
        font-size: 14px !important;
        font-weight: 750 !important;
    }

    .navbar-mobile-menu ul li a:hover,
    .navbar-mobile-menu ul li a:focus {
        background: rgba(73, 104, 242, .08) !important;
        color: #1d4ed8 !important;
    }
}

@media (max-width: 768px) {
    .airjournal-archives .archive-year-rail {
        display: none !important;
    }

    .airjournal-archives .archive-layout {
        display: block !important;
    }

    .airjournal-archives .archive-timeline {
        width: 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 480px) {
    .air-pagination {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 8px !important;
        overflow: visible !important;
        padding: 0 4px !important;
        margin: 28px 0 36px !important;
    }

    .air-pagination .air-page-link {
        flex: 0 0 auto !important;
        min-width: 36px !important;
        height: 36px !important;
        padding: 0 11px !important;
    }

    .air-pagination .air-page-gap {
        min-width: 20px !important;
        padding: 0 2px !important;
    }
}

/* Final mobile article/header correction and global modal back-to-top guard. */
body.air-modal-open .back-to-top,
body.air-modal-open #back-to-top,
body.air-modal-open #backToTop,
body.air-modal-open #scroll-to-top-btn,
body.air-modal-open #air-global-back-to-top {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(12px) scale(.96) !important;
}

@media (max-width: 1024px) {
    #header.header .navbar-container,
    .header.bg-white .navbar-container {
        display: flex !important;
        align-items: center !important;
    }

    #header.header .navbar-search-wrapper,
    #header.header .navbar-mobile-menu {
        align-self: center !important;
    }

    #header.header .navbar-mobile-menu,
    #header.header .search-trigger {
        position: relative !important;
        top: auto !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding: 0 !important;
        line-height: 1 !important;
        transform: none !important;
    }

    #header.header .search-trigger i,
    #header.header .navbar-mobile-menu .icon-menu {
        position: relative !important;
        top: 0 !important;
        left: 0 !important;
        transform: none !important;
    }

    #header.header .search-trigger i {
        width: 20px !important;
        height: 20px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        line-height: 20px !important;
    }

    #header.header .navbar-mobile-menu .icon-menu {
        display: block !important;
        width: 20px !important;
        height: 14px !important;
        flex: 0 0 20px !important;
    }

    #header.header .navbar-mobile-menu .icon-menu .middle {
        top: 50% !important;
        margin-top: -1px !important;
    }

    #header.header .navbar-mobile-menu .icon-menu::before {
        top: 0 !important;
    }

    #header.header .navbar-mobile-menu .icon-menu::after {
        bottom: 0 !important;
    }
}

@media (max-width: 768px) {
    body.airjournal-article .post-page-wrapper,
    body.airjournal-article .post-page-wrapper.air-post-wrapper,
    body.airjournal-article .air-post-wrapper {
        padding-top: 16px !important;
    }

    body.airjournal-article .main-content.page-page,
    body.airjournal-article .main-content.page-page.air-article-card {
        margin-top: 0 !important;
    }

    .airjournal-archives .archive-timeline {
        display: grid !important;
        justify-items: center !important;
    }

    .airjournal-archives .archive-year-block {
        width: 100% !important;
        max-width: 368px !important;
    }

    .airjournal-archives .archive-month-card {
        width: 100% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    body.airjournal-article #scroll-to-top-btn.visible,
    body.airjournal-article .back-to-top.visible {
        animation: airMobileBackTopIn .38s cubic-bezier(.16, 1, .3, 1) both !important;
    }

    body.airjournal-article #scroll-to-top-btn.is-returning,
    body.airjournal-article .back-to-top.is-returning {
        animation: airMobileBackTopTap .38s cubic-bezier(.16, 1, .3, 1) both !important;
    }

    .airjournal-archives .archive-post {
        grid-template-columns: 48px minmax(0, 1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .airjournal-archives .archive-post-main {
        min-width: 0 !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }

    .airjournal-archives .archive-post h3 {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
        white-space: nowrap !important;
        text-overflow: ellipsis !important;
        line-height: 1.45 !important;
    }
}
