* {margin:0;padding:0;box-sizing:border-box;font-family:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;}
body {background-color:#f5f7fa;min-width:320px;}
a, button, input, div {outline:none;-webkit-tap-highlight-color:transparent;outline-offset: -2px;}

/* 加载动画 */
.loading-overlay {
    position: fixed;top:0;left:0;width:100%;height:100%;
    background:rgba(245,247,250,0.98);display:flex;align-items:center;justify-content:center;
    z-index:9999;transition:opacity 0.45s ease;
}
.loading-content {text-align:center;}
.spinner {width:58px;height:58px;animation:rotate 1.15s linear infinite;}
@keyframes rotate {to{transform:rotate(360deg);}}
.loading-text {margin-top:20px;font-size:15.5px;color:#555;font-weight:500;line-height:1.5;}
.countdown-text {margin-top:8px;font-size:14px;color:#777;font-weight:500;}

/* 公告弹窗 */
.announcement-overlay {
    position: fixed;top:0;left:0;width:100%;height:100%;
    background:rgba(0,0,0,0.6);display:none;justify-content:center;align-items:center;
    z-index:1000;animation:fadeIn 0.3s ease;
}
.announcement-modal {
    background:#fff;width:85%;max-width:400px;border-radius:16px;overflow:hidden;
    box-shadow:0 10px 30px rgba(0,0,0,0.2);animation:scaleIn 0.3s ease;
}
@keyframes scaleIn {from{transform:scale(0.9);opacity:0;} to{transform:scale(1);opacity:1;}}
.announcement-header {background:linear-gradient(135deg,#00d2ff,#1e90ff);color:white;padding:18px 20px;text-align:center;font-size:18px;font-weight:bold;}
.announcement-content {padding:22px 20px 5px;line-height:1.72;color:#333;max-height:320px;overflow-y:auto;}
.announcement-content p {margin-bottom:15px;}
.announcement-content p:last-child {margin-bottom:0;}
.announcement-content a {color:#0066ff;word-break:break-all;}
.announcement-footer {padding:0 20px 20px;text-align:center;}
.no-show-label {display:block;margin:0 0 10px 0;font-size:14px;color:#555;cursor:pointer;text-align:left;padding-left:4px;}
.no-show-label input[type="checkbox"] {width:18px;height:18px;margin-right:8px;accent-color:#00b4d8;vertical-align:middle;}
.announcement-button {
    background:linear-gradient(135deg,#6e8efb,#a777e3);color:white;border:none;
    padding:10px 30px;border-radius:50px;font-size:16px;cursor:pointer;
    transition:all 0.3s ease;box-shadow:0 4px 10px rgba(110,142,251,0.3);margin-top:4px;
}
.announcement-button:hover {transform:translateY(-2px);box-shadow:0 6px 15px rgba(110,142,251,0.4);}

/* 其他样式 */
.header {text-align:center;padding:25px 20px;background:#fff;border-radius:16px;margin:15px;box-shadow:0 2px 10px rgba(0,0,0,0.05);animation:fadeIn 0.5s ease;}
@keyframes fadeIn {from{opacity:0;transform:translateY(10px);} to{opacity:1;transform:translateY(0);}}
.header-avatar {width:70px;height:70px;border-radius:50%;margin:0 auto 12px;background-image:url("https://q1.qlogo.cn/g?b=qq&nk=1953015168&s=640");background-size:cover;transition:transform .3s;}
.header-avatar:hover {transform:scale(1.1);}
.header-title {font-size:26px;font-weight:bold;color:#333;}
.header-subtitle {font-size:13px;color:#999;margin-top:6px;line-height:1.4;}
.search-box {margin:0 15px 15px;position:relative;animation:fadeIn 0.5s ease 0.1s backwards;}
.search-box input {width:100%;height:44px;padding:0 40px;border:none;border-radius:22px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,0.05);font-size:14px;outline:none;transition:box-shadow .3s;}
.search-box input:focus {box-shadow:0 4px 12px rgba(0,0,0,0.1);}
.search-box::before {content:"";position:absolute;left:15px;top:13px;width:18px;height:18px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23999'%3E%3Cpath d='M15.5 14h-.79l-.28-.27a6.5 6.5 0 0 0 1.48-5.34c0-3.07-2.13-5.64-5.03-5.64S5.47 5.59 5.47 8.66c0 3.07 2.13 5.64 5.03 5.64a6.5 6.5 0 0 0 5.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 8.66S7.01 3.32 10 3.32 15 5.33 15 8.66 12.99 14 10 14z'/%3E%3C/svg%3E");background-size:cover;}
.no-result {margin:0 15px 15px;padding:20px;background:#fff;border-radius:14px;text-align:center;color:#999;display:none;}
.card-group {margin:0 15px 15px;padding:12px;background:#fff;border-radius:14px;box-shadow:0 2px 8px rgba(0,0,0,0.05);animation:fadeIn 0.5s ease 0.2s backwards;transition:transform .2s,box-shadow .2s;}
.card-group:hover {transform:translateY(-3px);box-shadow:0 4px 12px rgba(0,0,0,0.1);}
.card-group-title {display:flex;align-items:center;margin-bottom:10px;font-size:16px;color:#333;}
.card-group-title img {width:22px;height:22px;margin-right:8px;object-fit:contain;}
.card-list {display:flex;flex-wrap:nowrap;gap:12px;overflow-x:auto;padding-bottom:8px;scrollbar-width:thin;scrollbar-color:#eee #fff;}
.card-list::-webkit-scrollbar {height:4px;}
.card-list::-webkit-scrollbar-thumb {background:#eee;border-radius:2px;}
.card-list::-webkit-scrollbar-track {background:transparent;}
.card {flex:0 0 85px;text-align:center;text-decoration:none;display:block;}
.card-icon {width:50px;height:50px;margin:0 auto 5px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#fff;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 4px rgba(0,0,0,0.1),0 0 0 1px rgba(0,0,0,0.05);}
.card-icon:hover,.card-icon.touch-active {transform:scale(1.15);box-shadow:0 4px 8px rgba(0,0,0,0.15);}
.card-icon img {width:30px;height:30px;object-fit:contain;image-rendering:pixelated;}
.card-name {font-size:12px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;animation:fadeIn 0.3s ease 0.3s backwards;}
.contact-info {margin:0 15px 30px;padding:15px;background:#fff;border-radius:14px;box-shadow:0 2px 8px rgba(0,0,0,0.05);text-align:center;font-size:14px;color:#333;}
.contact-info p {margin:8px 0;}
.contact-info a {color:#007aff;text-decoration:none;transition:color .2s;}
.contact-info a:hover {color:#0056b3;}