/* ================= 登机牌根 · 横版名片 =================
   票券风：右侧票根以虚线与主券分隔，上下打孔半圆缺口，
   联系方式收进票根、底部缀一段条码纹装饰。 */
#card.tpl-ticket {
    background: linear-gradient(180deg, #fdfeff, #f6fafb);
    border: 1px solid #d7e2e7;
    border-radius: 14px;
    box-shadow: 0 24px 55px -26px rgba(14, 116, 144,.4);
    padding: 24px 0 12px;
    position: relative;
    overflow: hidden;
}
/* 眉头 */
#card.tpl-ticket .card-head { padding: 0 26px; }
#card.tpl-ticket .card-company { color: #0e7490; font-weight: 800; letter-spacing: .2em; font-size: 12.5px; }
#card.tpl-ticket .card-company::after {
    content: " BOARDING"; color: #94a8b1; font-size: 9px; letter-spacing: .3em;
}
#card.tpl-ticket .avatar-img,
#card.tpl-ticket .avatar-fallback { width: 40px; height: 40px; border-color: #cfe3e9; }
#card.tpl-ticket .avatar-fallback { background: #0e7490; color: #fff; }
/* 主体：左主券 + 右票根 */
#card.tpl-ticket .card-body { padding-top: 12px; }
#card.tpl-ticket .identity { flex: 1; padding: 0 26px; align-self: center; }
#card.tpl-ticket .card-name { font-size: 28px; font-weight: 800; color: #17313b; letter-spacing: .05em; }
#card.tpl-ticket .r-title { color: #0e7490; letter-spacing: .22em; }
#card.tpl-ticket .card-tagline { color: #7d99a3; border-left: 2px solid #9fcfdd; padding-left: 9px; max-width: 260px !important; }
/* 票根 */
#card.tpl-ticket .contact-list {
    width: 158px; flex: none;
    border-left: 1.5px dashed #9db6c0;
    padding: 6px 12px 6px 18px;
    gap: 7px;
    align-self: stretch;
    justify-content: center;
}
#card.tpl-ticket .c-ico { display: none; }
#card.tpl-ticket .contact-list li { padding-left: 2px; margin-left: 0; }
#card.tpl-ticket .contact-list span[data-field],
#card.tpl-ticket .contact-list a { color: #35505a; font-size: 11.5px; }
/* 条码纹 */
#card.tpl-ticket .contact-list::after {
    content: ""; display: block; height: 24px; margin-top: 10px;
    background: repeating-linear-gradient(90deg,
        #2b3945 0 2px, transparent 2px 5px,
        #2b3945 5px 6px, transparent 6px 10px,
        #2b3945 10px 13px, transparent 13px 16px);
    opacity: .75;
}
/* 打孔缺口（骑在虚线两端） */
#card.tpl-ticket::before,
#card.tpl-ticket::after {
    content: ""; position: absolute;
    width: 22px; height: 22px; border-radius: 50%;
    background: #edf0f5;
    left: calc(100% - 158px - 11px);
    box-shadow: inset 0 0 0 60px #edf0f5;
}
#card.tpl-ticket::before { top: -11px; }
#card.tpl-ticket::after { bottom: 34px; }   /* 让开底部操作条 */
/* 底部操作（主券侧） */
#card.tpl-ticket .card-actions { margin: 6px 26px 0; padding-top: 10px; border-top: 1px dashed #d7e2e7; }
#card.tpl-ticket .act-btn.primary { background: #0e7490; }
#card.tpl-ticket .act-btn.ghost { border-color: #cfe0e6; color: #48707d; }

@media (max-width: 560px) {
    #card.tpl-ticket::before, #card.tpl-ticket::after { display: none; }
    #card.tpl-ticket .contact-list {
        width: auto; border-left: none;
        border-top: 1.5px dashed #9db6c0;
        margin: 10px 20px 0; padding: 10px 4px 0;
        align-self: auto; justify-content: flex-start;
    }
    #card.tpl-ticket .contact-list::after { display: none; }
}
