/*!
 *      _      ____ _   _ _____ _    _ _   _ ___
 *     | |    / ___| \ | | ____| |  | | | | |_ _|
 *     | |   | |  _|  \| |  _| | |  | | | | || |
 *     | |___| |_| | |\  | |___| |__| | |_| || |
 *     |_____|\____|_| \_|_____|____/ \___/|___|
 *
 *      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 *
 * Project      : LGNewUi
 * Author       : Ki
 * Last Updated : 2026-03-31
 * Description  : A private place to preserve love, memory, and the
 *                years shared between two people.
 *
 * Copyright (c) 2022-2026 by Ki. All Rights Reserved.
 *
 * Type         : Native PHP web application built with PHP, HTML,
 *                CSS, JavaScript, and selected third-party libraries.
 * License      : This project is licensed for personal couple-record
 *                use only.
 * Restriction  : Commercial, corporate, organizational, platform,
 *                or enterprise use is strictly prohibited.
 * Restriction  : Redistribution, modification, repackaging, resale,
 *                or unauthorized public deployment without explicit
 *                written permission is strictly prohibited.
 *
 * Official Authorization Site:
 * https://auth-love.kikiw.cn/
 *
 * Warning      : LGNewUi is an original work. Any unauthorized
 *                copying, scraping, resale, redistribution, or
 *                commercial use is forbidden.
 * Notice       : Development and long-term maintenance require
 *                substantial time and effort. Please respect the
 *                work involved and the applicable authorization terms.
 *
 */
.card {
    position: relative;
}

div#pjax-container {
    width: 100%;
}

div#mask .close {
    position: absolute;
    right: 2rem;
    top: 1rem;
    transition: all .3s;
}

div#mask .close:hover {
    transform: rotate(180deg);
    cursor: pointer;
}

div#mask .close svg:hover {
    fill: rgb(54, 138, 255);
}

div#mask .close svg {
    width: 3rem !important;
    height: 3rem !important;
}

.card::before {
    content: '';
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: #fd6458;
    box-shadow: 20px 0 0 #ffbf2b, 40px 0 0 #24cc3d;
    position: absolute;
    left: 0rem;
    top: -2.5rem;
}

.central.central-800.bg .avatar {
    width: 3em;
    height: 3em;
    border-radius: 0.8rem;
    box-shadow: 0 2px 8px #bdb7b759;
    border: 2px solid #fff;
    margin-right: 0.8rem;
}


#show_mes {
    position: fixed;
    bottom: 0;
    left: 50%;
    top: 40%;
    transform: translate(-50%, -50%);
    z-index: 10002;
}

.card::before {
    box-shadow: none;
    background-color: transparent;
}

div#mask {
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    background: #ffffffcc;
    width: 100%;
    height: 100%;
    position: fixed;
    z-index: 10001;
    top: 0;
    display: none;
}

span.iconfont.icon-liuyan {
    font-size: 3rem;
    display: block;
    text-align: right;
    color: #f18ba0;
}

.nub_con {
    color: #ffffff;
    font-size: 1.7rem;
    margin: 0 0.3rem;
    background: #ffffff40;
    padding: .3rem .6rem;
    border-radius: 10px;
    display: inline-block;
}

.ContentCentered {
    text-align: center;
}

.lyips {
    /* background-image: linear-gradient(90deg, #00d5bd 0%, #ffa264 100%); */
    /* background-image: linear-gradient(126deg, #49aeff 0%, #c671ff 100%); */
    background-image: linear-gradient(126deg, #6bd1ff 0%, #91b9ff 50%, #ff8cd1 100%);
    padding: 0.8rem 2rem;
    display: inline-block;
}

.leav_list .content_a {
    background: #f5f5f5;
}


.central.bg {
    background: none;
    border-radius: 2rem;
    padding: 0rem 2rem;
    box-shadow: none;
    border: none !important;
}



.leav_card {
    background: #fff;
    margin: 1rem 0;
    border-radius: 0.8rem;
    box-shadow: 0 8px 12px #ebedf0;
    border: 1px solid rgba(208, 206, 206, 0.4) !important;
    transition: all 0.3s linear !important;
    cursor: pointer;
}

.leav_card:hover {
    /* transform: translateY(-1.6rem); */
    background: #5d5858;
}

.leav_card:hover .name_leav span {
    color: #fff;
}


.leav_card .bg_leav {
    height: 15rem;
    width: 100%;
    background-color: #e2e8f0;
    background-size: cover;
    border-radius: 0.8rem 0.8rem 0 0;
    position: relative;
}

.leav_card .bg_leav .Visitor_info {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: 2rem;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.leav_card .bg_leav .Visitor_info span {
    color: #fff;
    border: 1px solid #fff;
    padding: 0.4rem 1rem;
    margin: 0.5rem 0;
    border-radius: 10rem;
}

.leav_card .bg_leav .Visitor_info .icon {
    margin-right: 0.2rem !important;
}

.leav_card .bg_leav::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #a7a7a757;
    /* backdrop-filter: blur(30px); */
    /* -webkit-backdrop-filter: blur(30px); */
    border-radius: 0.8rem 0.8rem 0 0;
}

.leav_card .aiv_qq {
    position: relative;
    padding: 2rem 0;
    padding-bottom: 0.5rem;
}

.leav_card .aiv_qq img {
    width: 5rem;
    height: 5rem;
    border-radius: 10rem;
    border: 2px solid #fff;
    position: absolute;
    top: -3.5rem;
    left: 50%;
    transform: translateX(-50%);
    ;
}

.leav_card .row_flex_leav {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 1rem;
}

.leav_card .row_flex_leav .name_leav {
    margin-bottom: 1rem;
    font-family: 'Noto Serif SC', serif;
    font-weight: 700;
    font-size: 1.2rem;
    color: #6b6b6b;
}

.leav_card .row_flex_leav .leav_text {
    font-family: 'Noto Serif SC', serif;
    font-weight: 400;
    margin-top: 1rem;
    color: #7f7f7f;
    font-size: 1rem;
    line-height: 1.5rem;
    background: #f5f5f5;
    padding: 0.5rem 1rem;
    border-radius: 0.6rem;
    word-break: break-all;
    width: 96%;
    position: relative;
    transition: 0.1s all;
}

.leav_card .row_flex_leav .leav_text::before {
    content: '';
    width: 0px;
    height: 0px;
    border: 20px solid;
    border-left: 20px solid transparent;
    border-right: 20px solid transparent;
    border-bottom: 20px solid #f5f5f5;
    border-top: 20px solid transparent;
    position: absolute;
    top: -2.4rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: -1;
    transition: 0.1s all;
}

.leav_card .row_flex_leav .leav_footer .leav_city,
.leav_card .row_flex_leav .leav_footer .leav_time {
    color: #1cbbb4;
    font-family: 'Noto Serif SC', serif;
    font-weight: 400;
    font-size: 1rem;
    padding: 0.5rem 1rem;
    border-radius: 50rem;
    background-color: #d2f1f0;
    display: flex;
    align-items: center;
}

.leav_card .row_flex_leav .leav_footer .leav_city span,
.leav_card .row_flex_leav .leav_footer .leav_time span {
    margin-right: 0.3rem
}

.leav_card .row_flex_leav .leav_footer .leav_time {
    background: #fff0e6;
    color: #ff6600;
}

.leav_card .leav_footer {
    display: flex;
    justify-content: space-around;
    width: 100%;
    margin: 1.5rem 0;
    font-family: 'Noto Serif SC', serif;
    font-weight: 400;
}

.leav_card:hover .leav_text {
    background: #4d4d4d;
    color: #fff;
}

.leav_card:hover .leav_text::before {
    border-bottom: 20px solid #4d4d4d;
}

#mes {
    position: fixed;
    right: 1rem;
    top: 6rem;
    z-index: 9999;
    display: flex;
    flex-direction: column;
}

.mesly {
    /* font-size: 2.5rem !important; */
    background: #fb6e6e;
    padding: 0.8rem;
    margin-top: 1rem;
    border-radius: 1rem;
    color: #fff;
    z-index: 100;
    transition: all .5s;
    box-shadow: 0 2px 8px rgba(28, 31, 35, .03), 0 16px 48px 8px rgba(28, 31, 35, .08);
}

.mesly svg.icon {
    width: 2.6rem !important;
    height: 2.6rem !important;
    transition: all .5s;
}

.mesly svg:not(.icon) {
    width: 2rem;
    height: 2rem;
    transition: all .5s;
}

.mesly:hover .icon {
    fill: #fb6e6e;
}

.mesly:hover svg:not(.icon) {
    fill: #fb6e6e;
    color: #fb6e6e;
}

.mesly:hover {
    background: #fff;
    cursor: pointer;
    box-shadow: 0 3px 48px 8px rgb(28 31 35 / 19%);
}

input[data-switch] {
    display: none;
}

input[data-switch]+label {
    width: 70px;
    height: 30px;
    background-color: #f1f3fa;
    background-image: none;
    border-radius: 2rem;
    cursor: pointer;
    display: inline-block;
    text-align: center;
    position: relative;
    -webkit-transition: all .1s ease-in-out;
    transition: all .1s ease-in-out;
    font-family: 'Noto Serif SC', serif;
    font-weight: 700;
    margin: 1rem 0;
}

input[data-switch]+label:before {
    color: #fa5c7c;
    content: attr(data-off-label);
    display: block;
    font-family: inherit;
    font-weight: 600;
    font-size: 1rem;
    line-height: 30px;
    position: absolute;
    right: 15px;
    margin: 0 .21667rem;
    top: 0;
    text-align: center;
    min-width: 1.66667rem;
    overflow: hidden;
    -webkit-transition: all .1s ease-in-out;
    transition: all .1s ease-in-out
}

input[data-switch]+label:after {
    content: '';
    position: absolute;
    left: 4px;
    background-color: #fa5c7c;
    -webkit-box-shadow: none;
    box-shadow: none;
    border-radius: 2rem;
    height: 20px;
    width: 20px;
    top: 5px;
    -webkit-transition: all .1s ease-in-out;
    transition: all .1s ease-in-out
}

input[data-switch]:checked+label {
    background-color: #727cf5
}

input[data-switch]:checked+label:before {
    color: #fff;
    content: attr(data-on-label);
    right: auto;
    left: 12px
}

input[data-switch]:checked+label:after {
    left: 46px;
    background-color: #f1f3fa
}

input[data-switch=bool]+label {
    background-color: #fa5c7c
}

input[data-switch=bool]+label:before,
input[data-switch=bool]:checked+label:before {
    color: #fff !important
}

input[data-switch=success]:checked+label {
    background-color: #fa5c7c;
}

span.itpsStyle {
    font-size: 1.1rem;
    font-weight: 400;
    color: #fbbd08;
    background: #fef2ce;
    padding: 0.5rem 1rem;
    border-radius: 1rem;
    margin: 0 0.5rem;
    display: inline-block;
    font-family: 'Noto Serif SC', serif;
    font-weight: 400;
}


/* 游客留言卡片样式 2024/04/28 */

.Message_Wrap {
    margin: 0 3rem 2rem;
}

.Message_Wrap .MessageCard {
    padding: 1rem;
    padding-bottom: 6px;
    background: #fff;
    box-shadow: 0 24px 48px -12px rgba(0,0,0,0.08);
    border-radius: 1rem;
    position: relative;
    box-sizing: border-box;
    margin-top: 1.5rem;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;

}

.MessageCard .MsgTime span {
    padding: .5rem .8rem;
    background: #7b7b7b;
    border-radius: 0 1rem;
    box-sizing: border-box;
    color: #ffffff;
    font-size: .85rem;
    font-family: 'Space Mono', sans-serif;
}

.MessageCard .MsgTime {
    position: absolute;
    top: 0;
    right: 0;
    box-sizing: border-box;
    display: flex;
}

.Message_Wrap .MessageCard:nth-child(even) .MsgTime span {
    border-radius: 1rem 0;
}

.Message_Wrap .MessageCard:nth-child(even) .MsgTime {
    left: 0;
}

.Message_Wrap .MessageCard .UserAvatar {
    width: 5rem;
    height: 5rem;
    border-radius: 50%;
    border: 3px solid #fff;
    box-shadow: -12px -9px 8px rgba(28, 31, 35, .03), -18px -16px 48px 8px rgb(161 161 161 / 8%);
    overflow: hidden;
    position: absolute;
    top: -2.5rem;
    left: -2.5rem;
}

.Message_Wrap .MessageCard .UserAvatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    background: #ffffff;
}

.Message_Wrap .MessageCard .UserName h1 {
    padding-left: 2.2rem;
    font-family: 'Dancing Script', 'Noto Serif SC', cursive;
    font-weight: 700;
    font-size: 1.35rem;
    color: #3b434b;
}

.Message_Wrap .MessageCard .HeightCalc {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: calc(100% - 1rem);
}


.Message_Wrap .MessageCard .MsgContent p {
    /* font-family: 'Inter', serif; */
    font-weight: 300;
    font-size: 1.1rem;
    line-height: 1.6rem;
    padding: 1rem;
    color: #6f6e6e;
    letter-spacing: 1px;
    word-wrap: break-word;
}

.Message_Wrap .MessageCard .MsgContent p img {
    height: 2rem;
    margin: .1rem;
    display: inline;
    vertical-align: bottom;
}

.Message_Wrap .MessageCard .MsgFooter {
    padding: 1rem;
    display: flex;
    align-items: center;
    flex-direction: column;
    border-top: 1px dashed #dadada;
}

/* .Message_Wrap .MessageCard .MsgFooter span {
    font-family: 'Noto Serif SC', serif;
    font-weight: 400;
} */

.Message_Wrap .MessageCard .MsgFooter .InfoItem.colorGree {
    color: #767676;
    display: flex;
    align-items: center;
}

.Message_Wrap .MessageCard .MsgFooter .icon.mr04 {
    margin-right: 0.4rem !important;
}

.Message_Wrap .MessageCard .MsgFooter .Msgdate {
    margin-top: 1rem;
}

.Message_Wrap .MessageCard .UserInfo {
    display: flex;
    align-items: center;
    justify-content: end;
    flex-wrap: wrap;
    width: 100%;
}

.Message_Wrap .MessageCard:nth-child(even) .UserInfo {
    justify-content: start;
    flex-direction: row-reverse;
}

.Message_Wrap .MessageCard .MsgFooter .InfoItem {
    padding: 0.4rem 1rem;
    /* border: 1px solid #ffffff; */
    /* border-radius: 10rem; */
    margin-right: 1rem;
    margin-bottom: .5rem;
    color: #888888;
    background: #f3f3f3;
    transition: all 100ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
    /* box-shadow: 0px -6px 10px white, 0px 4px 15px rgba(0, 0, 0, 0.15); */
    cursor: pointer;
    display: block;
    position: relative;
}

.Message_Wrap .MessageCard .MsgFooter .InfoItem.Round {
    padding: 0 !important;
    width: 33px;
    height: 33px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.Message_Wrap .MessageCard .MsgFooter .InfoItem svg {
    width: 1.2rem;
    height: 1.2rem;
}

.Message_Wrap .MessageCard:nth-child(even) .UserAvatar {
    left: unset;
    right: -2.5rem;
    box-shadow: 12px -9px 8px rgba(28, 31, 35, .03), 18px -16px 48px 8px rgb(161 161 161 / 8%);
}

.Message_Wrap .MessageCard:nth-child(even) .UserName {
    text-align: right;
    padding-right: 2.2rem;
}

.Message_Wrap .MessageCard:nth-child(even) .MsgContent p {
    text-align: right;
    justify-content: end;
}

.Message_Wrap .toExamine img {
    width: 2.6rem;
    height: 2.6rem;
    position: absolute;
    top: .3rem;
    right: .3rem;
}

.Message_Wrap .MessageCard:nth-child(even) .toExamine img {
    right: unset;
    left: 1rem;
}

.MessageCard:hover {
    cursor: pointer;
}

.MessageCard::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    background: linear-gradient(90deg, #6bd1ff 0%, #91b9ff 50%, #ff8cd1 100%);
    transition: all .4s cubic-bezier(0.34, 1.56, 0.64, 1);
    height: 1.5px;
    border-radius: 10px;
}

.MessageCard:hover::before {
    width: 80%;
}

.Message_Wrap .MessageCard:nth-child(odd) .MsgFooter .InfoItem:last-child {
    margin-right: 0
}


.textareaRow {
    position: relative;
}

.textareaRow .RandomContentBtn {
    position: absolute;
    bottom: 1rem;
    right: 1rem;
}

.textareaRow .RandomContentBtn .RCB_Style {
    padding: .3rem 1.3rem;
    transition: all .3s;
    user-select: none;
    border-radius: 10rem;
    border: 1px solid #555;
    color: #555;
    fill: #555555;
    font-family: 'Noto Serif SC', serif;
}


.OwOBtn {
    position: relative;
}

.OwOBtn .OwOBtn_Style {
    padding: .7rem 2rem;
    color: #ffffff;
    border-radius: 10rem;
    border: 1px solid;
    transition: all .3s;
    user-select: none;
    background: #cfcfcf;
}

.OwOBtn .OwOBtn_Style.Current {
    background: #333;
    border-color: transparent;
}

.OwOBtn .OwOBtn_Style:hover,
.textareaRow .RandomContentBtn .RCB_Style:hover {
    background: #565656;
    color: #fff;
    fill: #ffffff;
    border-color: transparent;
    cursor: pointer;
}

.OwOBtn {
    display: flex;
    margin-top: .3rem;
}

.OwO_Tab_Menu {
    display: flex;
    list-style: none;
    padding: .3rem;
    margin: 0;
    cursor: pointer;
    background: #ffffff;
    border-radius: 0 0 1rem 1rem;
    overflow: auto;
    width: 100%;
    box-sizing: border-box;
    border-radius: 1rem 1rem 0 0;
}


.OwO_Tab_Menu li {
    padding: 6px 20px;
    background-color: #ffffff;
    margin-right: 5px;
    border-radius: 1rem;
    word-break: keep-all;
    color: #676767;
    font-family: 'Noto Serif SC', serif;
    font-weight: 700;
}

.OwO_Tab_Menu li.active {
    background-color: #007bff;
    color: white;
}

.OwO_Content {
    display: none;
    padding: 10px 20px;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    background: #ffffff9e;
    border-radius: 1rem 1rem 0 0;
    border: 1px solid #fff;
    border-top: 0;
    border-radius: 0 0 1rem 1rem;
}

.OwO_Content.active {
    display: block;
}

.OwO_Tab_Contents img {
    height: 2.6rem;
    margin: .3rem .3rem;
    padding: .3rem .8rem;
    border-radius: .3rem;
    transition: all .25s !important;
    user-select: none;
    -webkit-user-drag: none;
}

.OwO_Tab_Contents img:hover {
    transform: scale(1.35);
    background: none;
    cursor: pointer;
}

.OwO_Tab_Contents .Item_OwO {
    list-style: none;
}

.OwO_Tab_Contents ul {
    display: flex;
    flex-wrap: wrap;
}

.OwO_Tab_Contents .OwO_items {
    height: 200px;
    overflow: auto;
    padding: 0;
    margin: 0;
}

.TabCont {
    max-width: 600px;
    width: 100%;
    margin: 2rem auto;
    position: absolute;
    top: 1rem;
    z-index: 10;
    display: none;
    border-radius: 1rem;
    box-shadow: 0 7px 25px rgb(98 98 98 / 8%);
}

.TabCont .OwO_Tab_Contents p {
    max-height: 200px;
    overflow: auto;
}

@keyframes IconRotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.svg-rotate {
    animation: IconRotate 2s linear infinite;
    transform-origin: center;
}


/* ============================================
   留言卡片锚点跳转 - 流光高亮效果
   ============================================ */

/* 头像始终在流光之上 */
.MessageCard .UserAvatar {
    z-index: 3;
}

/* 注册自定义属性，使 keyframes 能驱动角度变化 */
@property --highlight-angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

/* 流光高亮容器 - 绝对定位在卡片外围 */
.msg-highlight-ring {
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border-radius: inherit;
    overflow: hidden;
    pointer-events: none;
    z-index: 1;
}

.msg-highlight-ring::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1.5px;
    background: conic-gradient(from var(--highlight-angle, 0deg),
            transparent 0%,
            rgba(113, 183, 255, 0.9) 10%,
            rgba(167, 130, 255, 0.7) 15%,
            transparent 25%);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation: msgSweep 4s linear forwards;
}

.msg-highlight-ring::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: radial-gradient(circle at 50% 0%, rgba(113, 183, 255, 0.12), transparent 60%);
    animation: msgGlow 4s ease-in-out forwards;
}

@keyframes msgSweep {
    0% {
        --highlight-angle: 0deg;
        opacity: 1;
    }

    90% {
        --highlight-angle: 1080deg;
        opacity: 1;
    }

    100% {
        --highlight-angle: 1080deg;
        opacity: 0;
    }
}

@keyframes msgGlow {
    0% {
        opacity: 0;
    }

    10% {
        opacity: 1;
    }

    90% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}
