:root{--red:var(--theme-primary,var(--theme-primary));--red2:var(--theme-primary-hover,var(--theme-primary));--gold:var(--theme-accent,#c39a52);--ink:#24211f;--muted:#7a746e;--paper:#faf7f1;--card:#fff;--line:#ece6dc;--green:#2b7a58;--shadow:0 8px 28px rgba(65,42,24,.08)}*{box-sizing:border-box}html{background:#f1ede6}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:linear-gradient(180deg,#f7f0e6 0,#f8f8f7 230px);font-size:15px}.app-shell{max-width:720px;min-height:100vh;margin:0 auto;background:#fbfaf8;position:relative;padding-bottom:78px;box-shadow:0 0 50px rgba(0,0,0,.05)}a{color:inherit;text-decoration:none}.topbar{height:54px;display:flex;align-items:center;padding:0 18px;background:rgba(251,250,248,.96);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(143,29,44,.07);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:10px;font-family:serif;font-weight:700;letter-spacing:.04em}.brand-seal{display:inline-flex;width:34px;height:34px;border-radius:50%;align-items:center;justify-content:center;background:var(--red);color:#fff;font-size:11px;border:2px solid #e8cf9f;box-shadow:inset 0 0 0 2px rgba(255,255,255,.2)}.main-content{padding-bottom:12px}.hero{margin:14px 14px 20px;padding:28px 22px 24px;border-radius:24px;background:linear-gradient(135deg,var(--theme-primary-dark),var(--theme-primary) 58%,#b85a3f);color:#fff;position:relative;overflow:hidden;box-shadow:0 16px 36px rgba(113,25,35,.22)}.hero:before,.hero:after{content:"";position:absolute;border:1px solid rgba(232,207,159,.35);border-radius:50%}.hero:before{width:180px;height:180px;right:-76px;top:-68px}.hero:after{width:115px;height:115px;right:-20px;top:-35px}.hero-kicker{font-size:12px;letter-spacing:.24em;color:#f3dcae}.hero h1{margin:8px 0 4px;font-family:serif;font-size:33px;line-height:1.16;letter-spacing:.04em}.hero p{margin:10px 0 0;line-height:1.75;color:#f7e8e3}.hero-year{font-family:Georgia,serif;font-size:68px;line-height:.9;opacity:.11;position:absolute;right:12px;bottom:4px;font-weight:700}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 14px 12px}.quick{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 6px;text-align:center;box-shadow:var(--shadow)}.quick i{display:flex;width:38px;height:38px;margin:0 auto 8px;border-radius:13px;align-items:center;justify-content:center;background:#f9eee9;color:var(--red);font-style:normal;font-size:20px}.quick b{display:block;font-size:13px}.section{padding:6px 14px 20px}.section-head{display:flex;justify-content:space-between;align-items:end;margin:10px 2px 12px}.section-head h2{font-size:20px;margin:0;font-family:serif}.section-head a{font-size:13px;color:var(--red)}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow);margin-bottom:12px}.event-card{display:block}.event-card h3{margin:0 0 8px;font-size:17px}.meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px}.meta span{background:#f7f4ef;padding:5px 8px;border-radius:8px}.progress{height:7px;border-radius:99px;background:#eee8df;overflow:hidden;margin:13px 0 7px}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--theme-accent));border-radius:99px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:99px;background:#f7ecee;color:var(--red);font-size:12px}.badge.green{background:#eaf5ef;color:var(--green)}.badge.gray{background:#f0efed;color:#777}.btn{appearance:none;border:0;border-radius:13px;background:var(--red);color:#fff;padding:12px 18px;font-size:15px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;min-height:44px;cursor:pointer}.btn.secondary{background:#f5ece8;color:var(--red)}.btn.outline{background:#fff;color:var(--red);border:1px solid #d7b0b6}.btn.gray{background:#eeeae5;color:#777}.btn.full{width:100%}.btn.sm{min-height:34px;padding:7px 11px;font-size:13px;border-radius:9px}.page-head{padding:22px 16px 12px}.page-head h1{font-family:serif;font-size:28px;margin:0 0 7px}.page-head p{color:var(--muted);margin:0;line-height:1.6}.form-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;margin:0 14px 16px;box-shadow:var(--shadow)}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:600;margin:0 0 7px}.field input,.field textarea,.field select{width:100%;border:1px solid #ded8cf;background:#fff;border-radius:11px;padding:11px 12px;font:inherit;color:var(--ink);outline:none}.field textarea{min-height:90px;resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--theme-primary-light);box-shadow:0 0 0 3px rgba(143,29,44,.08)}.hint{color:var(--muted);font-size:12px;line-height:1.6}.article-list{width:100%}.article-list .card{display:block;width:100%;max-width:100%;padding:15px 16px;margin:0 0 12px;overflow:hidden}.article-list .card:last-child{margin-bottom:0}.article-list h3{margin:0 0 7px;font-size:17px;line-height:1.45;word-break:break-word}.article-list .hint{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.7;margin:0;color:var(--muted);word-break:break-word}.article-list .row-between{align-items:flex-start}.article-list .meta{margin-top:10px}.article-content{font-size:16px;line-height:1.95;white-space:pre-wrap;word-break:break-word}.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:0 14px}.photo-item{position:relative;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:#eee}.photo-item img{width:100%;height:100%;object-fit:cover;display:block}.photo-item span{position:absolute;left:0;right:0;bottom:0;padding:22px 9px 8px;background:linear-gradient(transparent,rgba(0,0,0,.62));color:#fff;font-size:12px}.amount-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.amount-btn{border:1px solid #d9cfc2;border-radius:14px;padding:15px;background:#fff;font-size:20px;font-weight:700;color:var(--red);cursor:pointer}.amount-btn.selected{background:#f9ecec;border-color:var(--red);box-shadow:0 0 0 2px rgba(143,29,44,.08)}.amount-btn small{font-size:11px;color:var(--muted);display:block;font-weight:400;margin-top:3px}.stat-strip{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px 12px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;text-align:center}.stat b{display:block;font-size:22px;color:var(--red);font-family:Georgia,serif}.stat span{font-size:12px;color:var(--muted)}.donor-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px dashed var(--line);padding:12px 0}.donor-row:last-child{border-bottom:0}.donor-name b{display:block}.donor-name small{color:var(--muted)}.donor-amount{font-family:Georgia,serif;color:var(--red);font-weight:700}.tabs{display:flex;gap:8px;overflow:auto;padding:0 14px 12px}.tabs a{flex:0 0 auto;padding:8px 13px;border-radius:99px;background:#f0ece6;color:#6e675f;font-size:13px}.tabs a.active{background:var(--red);color:#fff}.empty{padding:32px 20px;text-align:center;color:var(--muted);background:#fff;border:1px dashed #ddd4c8;border-radius:16px;margin:0 14px 15px}.profile-box{margin:14px;background:linear-gradient(135deg,#fff,#f9f2ea);border:1px solid var(--line);border-radius:20px;padding:18px}.profile-box h2{margin:0 0 5px;font-family:serif}.list-menu{margin:0 14px 16px;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.list-menu a{display:flex;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--line)}.list-menu a:last-child{border-bottom:0}.flash{margin:10px 14px 0;padding:11px 13px;border-radius:12px;font-size:13px}.flash-success{background:#eaf5ef;color:#226647}.flash-error{background:#fae9e9;color:var(--theme-primary-text)}.flash-info{background:#eef2f7;color:#40566d}.bottom-nav{position:fixed;z-index:30;left:50%;transform:translateX(-50%);bottom:0;width:min(720px,100%);height:68px;padding:5px max(10px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);overflow:visible;background:rgba(255,255,255,.97);border-top:1px solid rgba(143,29,44,.09);box-shadow:0 -8px 24px rgba(52,31,25,.035);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.bottom-nav a{position:relative;z-index:1;text-align:center;color:#898078;font-family:inherit;font-size:11px;line-height:1.2;transition:color .18s ease,transform .18s ease}.bottom-nav a span{display:block;font-size:20px;line-height:29px}.bottom-nav a b{display:block;font-family:inherit;font-size:11px;line-height:16px;font-weight:500}.bottom-nav a.active{color:var(--red)}.bottom-nav a span.nav-svg-icon{position:relative;width:29px;height:29px;margin:0 auto;display:flex;align-items:center;justify-content:center;line-height:29px}.bottom-nav a span.nav-svg-icon svg{display:block;width:22px;height:22px;overflow:visible;flex:0 0 22px}.bottom-nav a.bottom-nav-donate,.bottom-nav-featured{z-index:3;color:var(--theme-primary);padding-top:0}.bottom-nav a.bottom-nav-donate,.bottom-nav-featured span.nav-svg-icon{width:50px;height:50px;margin:-17px auto 1px;border-radius:50%;color:#fff;background:linear-gradient(145deg,var(--theme-primary) 0%,var(--theme-primary) 56%,var(--theme-primary-dark) 100%);border:2px solid #e6c987;box-shadow:0 8px 20px rgba(112,20,33,.27),0 0 0 4px rgba(255,255,255,.96);line-height:50px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.bottom-nav a.bottom-nav-donate,.bottom-nav-featured span.nav-svg-icon:after{content:"";position:absolute;inset:5px;border-radius:50%;border:1px solid rgba(255,239,204,.22);pointer-events:none}.bottom-nav a.bottom-nav-donate,.bottom-nav-featured span.nav-svg-icon svg{width:25px;height:25px;flex-basis:25px}.bottom-nav a.bottom-nav-donate,.bottom-nav-featured b{margin-top:0;color:var(--theme-primary-dark);font-size:11px;font-weight:700;letter-spacing:.04em}.bottom-nav a.bottom-nav-donate,.bottom-nav-featured.active span.nav-svg-icon{border-color:#f1d99d;box-shadow:0 9px 23px rgba(112,20,33,.31),0 0 0 4px rgba(255,255,255,.98),0 0 0 6px rgba(195,154,82,.2)}.bottom-nav a.bottom-nav-donate,.bottom-nav-featured.active b{color:var(--theme-primary)}.bottom-nav a.bottom-nav-donate,.bottom-nav-featured:active span.nav-svg-icon{transform:scale(.94)}@media(hover:hover){.bottom-nav a.bottom-nav-donate,.bottom-nav-featured:hover span.nav-svg-icon{transform:translateY(-1px);box-shadow:0 10px 24px rgba(112,20,33,.3),0 0 0 4px rgba(255,255,255,.98)}}@media(max-width:350px){.bottom-nav a.bottom-nav-donate,.bottom-nav-featured span.nav-svg-icon{width:47px;height:47px;margin-top:-15px}.bottom-nav a.bottom-nav-donate,.bottom-nav-featured span.nav-svg-icon svg{width:23px;height:23px;flex-basis:23px}}.site-footer{text-align:center;color:#a39b92;font-size:11px;padding:18px 14px 6px}.pay-loading{text-align:center;padding:50px 24px}.spinner{width:44px;height:44px;border:4px solid #eadfda;border-top-color:var(--red);border-radius:50%;animation:spin .9s linear infinite;margin:0 auto 20px}@keyframes spin{to{transform:rotate(360deg)}}.status-icon{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:16px auto;font-size:34px;background:#eaf5ef;color:var(--green)}.status-icon.pending{background:#f8f0df;color:#a67b2e}@media(min-width:600px){.quick-grid{grid-template-columns:repeat(5,1fr)}.photo-grid{grid-template-columns:repeat(3,1fr)}}

/* Rich article content (v1.5) */
.article-content{font-size:16px;line-height:1.9;white-space:normal;word-break:break-word;overflow-wrap:anywhere}
.article-content p{margin:0 0 1em}.article-content h1,.article-content h2,.article-content h3,.article-content h4{font-family:serif;line-height:1.42;color:#2a2420;margin:1.35em 0 .65em}.article-content h1{font-size:28px}.article-content h2{font-size:23px}.article-content h3{font-size:20px}.article-content h4{font-size:18px}.article-content blockquote{margin:1.2em 0;padding:12px 16px;border-left:4px solid var(--red);background:#f9f2ee;color:#665e58;border-radius:0 10px 10px 0}.article-content ul,.article-content ol{padding-left:1.6em;margin:1em 0}.article-content li{margin:.35em 0}.article-content img{max-width:100%;height:auto;display:block;margin:18px auto;border-radius:12px}.article-content figure{margin:20px 0}.article-content figcaption{text-align:center;font-size:12px;color:var(--muted);margin-top:7px}.article-content a{color:var(--theme-primary);text-decoration:underline;text-underline-offset:2px}.article-content hr{border:0;border-top:1px solid #ded6cb;margin:26px 0}.article-content table{width:100%;border-collapse:collapse;margin:18px 0;display:block;overflow-x:auto}.article-content th,.article-content td{border:1px solid #ddd4c8;padding:8px 10px;min-width:72px}.article-content th{background:#f7f2ec}.article-content pre{padding:13px 14px;background:#f1efec;border-radius:10px;overflow:auto;white-space:pre-wrap}.article-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f2efea;padding:.12em .3em;border-radius:4px}.article-content pre code{background:transparent;padding:0}

/* Article covers, categories and metadata v1.6 */
.article-category{display:inline-flex;align-items:center;max-width:100%;padding:4px 8px;border-radius:999px;background:#f6ece7;color:var(--red);font-size:11px;line-height:1;margin-bottom:8px}.article-list-card{padding:0!important;overflow:hidden}.article-card-cover{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#eee}.article-card-body{padding:15px 16px}.article-list-card .article-category{margin-bottom:7px}.article-detail>h1{font-family:serif;font-size:28px;line-height:1.38;margin:4px 0 10px}.article-detail-meta{margin-bottom:16px}.article-hero-cover{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:16px;margin:6px 0 18px;background:#eee}.article-summary{background:#fbf5ed;color:#6f6359;box-shadow:none;margin-bottom:20px}.home-article-card{padding:0!important;display:block!important;overflow:hidden}.home-article-card.has-cover{display:grid!important;grid-template-columns:120px minmax(0,1fr);min-height:94px}.home-article-card>img{width:120px;height:100%;min-height:94px;object-fit:cover;display:block}.home-article-body{padding:12px 14px;min-width:0}.home-article-body h3{margin:0 0 5px}.home-article-body .article-category{margin-bottom:5px}.article-category-tabs{padding-top:2px}@media(max-width:420px){.home-article-card.has-cover{grid-template-columns:105px minmax(0,1fr)}.home-article-card>img{width:105px}.article-detail>h1{font-size:26px}}

/* v2.6 donation history/detail */
.donation-summary .stat b{font-size:20px}.donation-record{display:block}.donation-record-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}.donation-record-foot .hint{max-width:68%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.donation-tx{margin-top:8px;word-break:break-all}.donation-detail-card .donor-row{gap:16px}.donation-detail-card .donor-row>span{color:var(--muted);flex:0 0 auto}.donation-detail-card .donor-row>b{text-align:right;min-width:0;word-break:break-all}.donation-big-amount{font-size:24px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.small-value{font-size:12px}.text-success{color:var(--green)}.text-danger{color:var(--theme-primary)}.status-icon.failed{background:#fae9e9;color:var(--theme-primary)}

/* v2.8 donation/mobile card UI - independent from generic .card to avoid inline-anchor/cache layout issues */
.donation-wall-entry{padding:0 14px 4px}
.donation-history{padding-top:8px}
.donation-summary-inline{padding:0 0 12px}
.donation-card-list{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;width:100%;min-width:0}
.donation-card{display:block!important;width:100%!important;max-width:100%;min-width:0;margin:0!important;padding:15px 16px!important;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden;color:var(--ink);text-decoration:none}
.donation-card-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;min-width:0}
.donation-card-person{min-width:0;overflow:hidden}
.donation-card-person strong{display:block;font-size:16px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.donation-card-person strong span{font-weight:600;color:#4f4a45}
.donation-card-person small{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.donation-card-amount{flex:0 0 auto;color:var(--red);font-family:Georgia,serif;font-size:20px;font-weight:700;line-height:1.2;white-space:nowrap;padding-top:1px}
.donation-card-bottom{display:flex;align-items:center;gap:8px;min-width:0;margin-top:12px;padding-top:11px;border-top:1px dashed var(--line)}
.donation-status{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:25px;padding:4px 9px;border-radius:999px;font-size:12px;line-height:1;background:#f8f0df;color:#9a6d1f}
.donation-status.is-paid{background:#eaf5ef;color:var(--green)}
.donation-status.is-failed{background:#f1efed;color:#746f69}
.donation-order{display:block;min-width:0;flex:1;color:var(--muted);font-size:11px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.donation-transaction{margin-top:8px;padding:7px 9px;border-radius:9px;background:#f8f6f2;color:var(--muted);font-size:10px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.donation-empty{margin:0!important}
@media(max-width:380px){.donation-card{padding:14px!important}.donation-card-person strong{font-size:15px}.donation-card-amount{font-size:18px}.donation-card-bottom{align-items:flex-start;flex-direction:column;gap:7px}.donation-order{width:100%;text-align:left}.donation-summary .stat,.donation-summary-inline .stat{padding:12px 8px}}
\n\n/* v2.9 pending payment resume / cancel */\n.donation-card-link{display:block;color:inherit;text-decoration:none;min-width:0}\n.donation-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}\n.donation-card-actions form{margin:0;min-width:0}.donation-card-actions .btn{width:100%;min-width:0}\n@media(max-width:360px){.donation-card-actions{grid-template-columns:1fr}}\n

/* v3.1 user center */
.me-hero{margin:14px;padding:18px;border:1px solid #eadfce;border-radius:24px;background:linear-gradient(135deg,#fff 0,#fbf5eb 60%,#f7e7df 100%);box-shadow:var(--shadow);overflow:hidden}
.me-hero-main{display:flex;align-items:center;gap:14px;min-width:0}.me-avatar-wrap{flex:0 0 auto}.me-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 4px 16px rgba(90,55,30,.13);display:block}.me-avatar-fallback{align-items:center;justify-content:center;background:linear-gradient(135deg,var(--red),var(--theme-primary));color:#fff;font-family:serif;font-size:25px;font-weight:700}
.me-identity{min-width:0;flex:1}.me-name-line{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.me-name-line h1{margin:0;font-family:serif;font-size:23px;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-wechat-badge{font-size:10px;color:#23724f;background:#e8f4ed;border-radius:999px;padding:4px 7px;white-space:nowrap}.me-real-line{display:flex;gap:6px 10px;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:12px;line-height:1.5}.me-real-line span+span:before{content:'·';margin-right:10px;color:#c6bdb2}
.me-profile-progress{margin-top:16px;padding-top:14px;border-top:1px dashed #ded3c5}.me-profile-progress-text{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.me-profile-progress-text b{color:var(--red)}.me-progress-track{height:6px;margin-top:7px;border-radius:99px;background:#eee6db;overflow:hidden}.me-progress-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--red),var(--theme-accent))}.me-profile-actions{display:flex;gap:16px;margin-top:10px}.me-profile-actions a{font-size:12px;color:var(--red)}
.me-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0 14px 14px}.me-stats a{min-width:0;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 5px;text-align:center;box-shadow:0 5px 18px rgba(65,42,24,.05)}.me-stats b{display:block;color:var(--red);font-family:Georgia,serif;font-size:18px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-stats span{display:block;margin-top:5px;color:#615b55;font-size:11px}.me-stats small{display:block;margin-top:3px;color:#9c7c4c;font-size:9px;line-height:1.3}
.me-quick-wrap{padding:0 14px 8px}.me-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.me-quick-grid a{min-width:0;padding:13px 6px 11px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:0 5px 18px rgba(65,42,24,.05)}.me-quick-grid i{display:flex;width:38px;height:38px;border-radius:13px;align-items:center;justify-content:center;margin:0 auto 7px;background:#f8ede8;color:var(--red);font-style:normal;font-size:18px}.me-quick-grid b{display:block;font-size:12px;white-space:nowrap}.me-quick-grid span{display:block;margin-top:3px;color:var(--muted);font-size:9px;line-height:1.3}
.me-section{padding-bottom:14px}.me-section .section-head{align-items:center}.me-section-count{font-size:11px;color:var(--muted)}.me-empty{margin:0!important}.me-timeline{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.me-timeline-item{display:grid;grid-template-columns:10px 52px minmax(0,1fr) 14px;align-items:center;gap:9px;padding:13px 14px;border-bottom:1px solid var(--line)}.me-timeline-item:last-child{border-bottom:0}.me-timeline-dot{width:8px;height:8px;border-radius:50%;background:var(--red)}.me-timeline-time{display:flex;flex-direction:column}.me-timeline-time b{font-size:14px}.me-timeline-time span{font-size:11px;color:var(--muted)}.me-timeline-content{min-width:0}.me-timeline-content strong{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-timeline-content small{display:block;margin-top:3px;color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-chevron{font-size:22px;color:#b8aea3}
.me-profile-edit{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.me-profile-edit summary{cursor:pointer;list-style:none;padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.me-profile-edit summary::-webkit-details-marker{display:none}.me-profile-edit summary span{min-width:0}.me-profile-edit summary b{display:block;font-size:15px}.me-profile-edit summary small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.me-profile-edit summary em{font-style:normal;font-size:11px;color:var(--red);background:#f8ecee;padding:5px 8px;border-radius:999px;white-space:nowrap}.me-profile-edit form{padding:16px;border-top:1px solid var(--line)}
.me-record-list{display:grid;gap:10px}.me-record-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:14px 15px;box-shadow:0 5px 18px rgba(65,42,24,.05)}.me-record-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.me-record-head>div{min-width:0}.me-record-head strong{display:block;font-size:14px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-record-head small{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.5}.me-record-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}.me-record-actions form{margin:0}.me-more{margin-top:10px;background:#f8f5f0;border-radius:14px;overflow:hidden}.me-more summary{padding:12px 14px;text-align:center;color:var(--red);font-size:12px;cursor:pointer}.me-more-body{background:#fff;border-top:1px solid var(--line)}.me-more-body a{display:flex;justify-content:space-between;gap:10px;padding:11px 13px;border-bottom:1px solid var(--line);font-size:11px}.me-more-body a:last-child{border-bottom:0}.me-more-body b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-more-body span{color:var(--muted);white-space:nowrap}
.me-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.me-photo-card{position:relative;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:#eee}.me-photo-card img{width:100%;height:100%;object-fit:cover;display:block}.me-photo-overlay{position:absolute;left:0;right:0;bottom:0;padding:24px 7px 7px;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff}.me-photo-overlay span{display:inline-block;padding:3px 6px;border-radius:999px;background:rgba(181,132,47,.9);font-size:9px}.me-photo-overlay span.ok{background:rgba(43,122,88,.92)}.me-photo-overlay span.bad{background:rgba(130,126,120,.92)}.me-photo-overlay small{display:block;margin-top:4px;font-size:9px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-section-note{margin-top:8px;color:var(--muted);font-size:10px;text-align:center}
.me-donation-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:10px}.me-donation-summary>div{padding:12px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:16px}.me-donation-summary b{display:block;color:var(--red);font-family:Georgia,serif;font-size:19px}.me-donation-summary span{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.me-service-list{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}.me-service-list>a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 15px;border-bottom:1px solid var(--line)}.me-service-list>a:last-child{border-bottom:0}.me-service-list>a>span{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;min-width:0;align-items:center}.me-service-list i{grid-row:1/3;display:flex;width:34px;height:34px;border-radius:11px;align-items:center;justify-content:center;background:#f6eee9;color:var(--red);font-style:normal}.me-service-list b{font-size:13px}.me-service-list small{color:var(--muted);font-size:10px;margin-top:2px}.me-service-list em{font-style:normal;font-size:22px;color:#b8aea3}
@media(max-width:390px){.me-hero{padding:16px}.me-avatar{width:58px;height:58px}.me-name-line h1{font-size:21px}.me-stats{gap:6px}.me-stats a{padding:11px 3px}.me-stats b{font-size:16px}.me-quick-grid{gap:6px}.me-quick-grid a{padding-left:3px;padding-right:3px}.me-quick-grid span{display:none}.me-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* v3.2 simplified user center */
.me-simple-hero{margin:14px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 16px rgba(65,42,24,.04)}
.me-simple-user{display:flex;align-items:center;gap:12px;min-width:0}.me-simple-avatar-wrap{flex:0 0 auto}.me-simple-avatar{width:54px;height:54px;border-radius:50%;object-fit:cover;display:block}.me-simple-avatar-fallback{align-items:center;justify-content:center;background:var(--red);color:#fff;font-family:serif;font-size:22px;font-weight:700}.me-simple-usertext{min-width:0;flex:1}.me-simple-name{font-size:20px;font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-simple-meta{display:flex;flex-wrap:wrap;gap:3px 8px;margin-top:5px;color:var(--muted);font-size:11px}.me-simple-meta span+span:before{content:'·';margin-right:8px;color:#c7bdb0}.me-simple-refresh{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;background:#f7f2ec;color:var(--red);font-size:17px}
.me-simple-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:0 14px 14px;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.me-simple-stats a{position:relative;padding:12px 3px;text-align:center;min-width:0}.me-simple-stats a+a:before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:1px;background:var(--line)}.me-simple-stats b{display:block;color:var(--red);font-size:16px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-simple-stats span{display:block;margin-top:4px;color:var(--muted);font-size:10px}
.me-simple-menu{margin:0 14px 14px;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.me-simple-menu>a{display:grid;grid-template-columns:36px minmax(0,1fr) 16px;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);color:inherit}.me-simple-menu>a:last-child{border-bottom:0}.me-simple-icon{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:11px;background:#f7f1ec;color:var(--red);font-size:16px}.me-simple-menu b{display:block;font-size:13px;line-height:1.3}.me-simple-menu small{display:block;margin-top:2px;color:var(--muted);font-size:10px;line-height:1.35}.me-simple-menu em{font-style:normal;color:#b8aea3;font-size:21px}.me-simple-services{margin-top:6px;margin-bottom:4px}
.me-simple-section{padding-bottom:10px}.me-simple-count{font-size:11px;color:var(--muted)}.me-simple-upcoming{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.me-simple-upcoming>a{display:grid;grid-template-columns:48px minmax(0,1fr) 14px;gap:10px;align-items:center;padding:12px 13px;border-bottom:1px solid var(--line);color:inherit}.me-simple-upcoming>a:last-child{border-bottom:0}.me-simple-upcoming time{display:flex;flex-direction:column}.me-simple-upcoming time b{font-size:13px}.me-simple-upcoming time small{color:var(--muted);font-size:10px}.me-simple-upcoming div{min-width:0}.me-simple-upcoming strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-simple-upcoming span{display:block;margin-top:3px;color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-simple-upcoming em{font-style:normal;color:#b8aea3;font-size:20px}
.me-simple-fold{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.me-simple-fold summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;cursor:pointer}.me-simple-fold summary::-webkit-details-marker{display:none}.me-simple-fold summary span{min-width:0}.me-simple-fold summary b{display:block;font-size:14px}.me-simple-fold summary small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.me-simple-fold summary em{font-style:normal;color:#b8aea3;font-size:20px;transition:transform .15s}.me-simple-fold[open] summary em{transform:rotate(90deg)}.me-simple-fold-body{padding:0 12px 12px;border-top:1px solid var(--line)}.me-simple-fold-body form{padding-top:12px}.me-simple-fold-body .me-record-list,.me-simple-fold-body .donation-card-list,.me-simple-fold-body .me-photo-grid{margin-top:12px}.me-simple-more{display:block;padding:12px 2px 2px;text-align:center;color:var(--red);font-size:11px}
@media(max-width:360px){.me-simple-hero{margin-left:10px;margin-right:10px}.me-simple-stats,.me-simple-menu{margin-left:10px;margin-right:10px}.me-simple-avatar{width:50px;height:50px}.me-simple-name{font-size:18px}.me-simple-stats b{font-size:14px}.me-simple-stats span{font-size:9px}}

/* v3.3 ultra-clean user center */
.me-clean-hero{margin:14px;padding:17px 16px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 16px rgba(65,42,24,.035)}
.me-clean-user{display:flex;align-items:center;gap:13px;min-width:0}.me-clean-avatar-wrap{flex:0 0 auto}.me-clean-avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;display:block}.me-clean-avatar-fallback{align-items:center;justify-content:center;background:var(--red);color:#fff;font-family:serif;font-size:22px;font-weight:700}.me-clean-usertext{min-width:0;flex:1}.me-clean-name{font-size:20px;font-weight:700;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-clean-meta{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.4}
.me-clean-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:0 14px 17px;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.me-clean-stats a{position:relative;padding:13px 2px 12px;text-align:center;min-width:0;color:inherit;-webkit-tap-highlight-color:transparent}.me-clean-stats a:active{background:#faf6f2}.me-clean-stats a+a:before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:1px;background:var(--line)}.me-clean-stats b{display:block;color:var(--red);font-size:16px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-clean-stats span{display:block;margin-top:5px;color:var(--muted);font-size:10px}
.me-clean-section{padding-bottom:10px}.me-clean-upcoming{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.me-clean-upcoming>a{display:grid;grid-template-columns:48px minmax(0,1fr) 14px;gap:10px;align-items:center;padding:12px 13px;border-bottom:1px solid var(--line);color:inherit}.me-clean-upcoming>a:last-child{border-bottom:0}.me-clean-upcoming time{display:flex;flex-direction:column}.me-clean-upcoming time b{font-size:13px}.me-clean-upcoming time small{color:var(--muted);font-size:10px}.me-clean-upcoming div{min-width:0}.me-clean-upcoming strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-clean-upcoming span{display:block;margin-top:3px;color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-clean-upcoming em{font-style:normal;color:#b8aea3;font-size:20px}
.me-clean-list{margin:5px 14px 14px;background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden}.me-clean-list details{border-bottom:1px solid var(--line)}.me-clean-list details:last-child{border-bottom:0}.me-clean-list summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 14px;cursor:pointer;-webkit-tap-highlight-color:transparent}.me-clean-list summary::-webkit-details-marker{display:none}.me-clean-list summary span{display:block;min-width:0;flex:1}.me-clean-list summary b{display:block;font-size:14px;font-weight:600;line-height:1.35}.me-clean-list summary small{display:block;margin-top:4px;color:var(--muted);font-size:10px;font-weight:400;line-height:1.4;white-space:normal}.me-clean-list summary em{font-style:normal;color:#b8aea3;font-size:21px;line-height:1;transition:transform .15s}.me-clean-list details[open] summary{background:#fcfaf8}.me-clean-list details[open] summary em{transform:rotate(90deg)}.me-clean-fold-body{padding:0 12px 13px;border-top:1px solid var(--line)}.me-clean-fold-body>form{padding-top:12px}.me-clean-fold-body .me-record-list,.me-clean-fold-body .donation-card-list,.me-clean-fold-body .me-photo-grid{margin-top:12px}.me-clean-more{display:block;padding:12px 2px 1px;text-align:center;color:var(--red);font-size:11px}
.me-clean-links{margin:0 14px 8px;background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden}.me-clean-links>a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 14px;border-bottom:1px solid var(--line);color:inherit}.me-clean-links>a:last-child{border-bottom:0}.me-clean-links span{font-size:14px;font-weight:600}.me-clean-links em{font-style:normal;color:#b8aea3;font-size:21px;line-height:1}
@media(max-width:360px){.me-clean-hero,.me-clean-stats,.me-clean-list,.me-clean-links{margin-left:10px;margin-right:10px}.me-clean-avatar{width:52px;height:52px}.me-clean-name{font-size:18px}.me-clean-stats b{font-size:14px}.me-clean-stats span{font-size:9px}}

/* v3.5 independent donation history */
.me-donation-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 14px 14px}
.me-donation-pending{font-size:12px;color:var(--red);background:#f9ecee;border-radius:99px;padding:5px 9px}
.me-donation-history{padding-top:0}
.donation-error-text{color:#a33;white-space:normal;overflow-wrap:anywhere}
@media(max-width:380px){.me-donation-actions{grid-template-columns:1fr}}

/* v4.3.34 personal center readability + dedicated profile page */
.me-v34-hero{padding:19px 17px}.me-v34-hero .me-clean-avatar{width:64px;height:64px}.me-v34-hero .me-clean-avatar-fallback{font-size:25px}.me-v34-hero .me-clean-name{font-size:22px}.me-v34-hero .me-clean-meta{font-size:14px;line-height:1.5;margin-top:6px}.me-profile-needed{display:flex;align-items:center;gap:9px;margin-top:7px;font-size:14px;line-height:1.4;color:#7b5b45}.me-profile-needed span{font-weight:600}.me-profile-needed b{color:var(--red);font-size:14px}
.me-v34-stats a{padding:15px 3px 14px;min-height:70px}.me-v34-stats b{font-size:19px}.me-v34-stats span{font-size:13px;margin-top:6px;color:#625b54}
.me-v34-upcoming-section .section-head h2{font-size:20px}.me-v34-upcoming>a{grid-template-columns:58px minmax(0,1fr) 16px;padding:14px 14px;gap:11px}.me-v34-upcoming time b{font-size:16px;color:var(--red)}.me-v34-upcoming time small{font-size:13px;margin-top:2px}.me-v34-upcoming strong{font-size:15px;line-height:1.4}.me-v34-upcoming span{font-size:12px;line-height:1.45;margin-top:4px}.me-v34-upcoming div i{display:inline-flex;margin-top:7px;padding:3px 7px;border-radius:999px;background:#f8e9eb;color:var(--red);font-style:normal;font-size:12px;font-weight:700}.me-v34-upcoming em{font-size:23px}
.me-v34-list{scroll-margin-top:64px}.me-v34-list .me-profile-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 14px;border-bottom:1px solid var(--line);color:inherit}.me-v34-list .me-profile-entry span{display:block;min-width:0;flex:1}.me-v34-list .me-profile-entry b,.me-v34-list summary b{font-size:16px;line-height:1.4}.me-v34-list .me-profile-entry small,.me-v34-list summary small{display:block;margin-top:4px;color:var(--muted);font-size:13px;line-height:1.45}.me-v34-list .me-profile-entry em{font-style:normal;color:#b8aea3;font-size:22px}.me-v34-list summary{padding:16px 14px}.me-v34-list details{scroll-margin-top:66px}.me-v34-list .me-clean-fold-body{padding:0 12px 14px}.me-v34-list .empty{margin:12px 0 0}.me-v34-list .me-record-head strong{font-size:15px;white-space:normal}.me-v34-list .me-record-head small{font-size:13px;line-height:1.55}.me-v34-list .donation-status{font-size:12px}.me-v34-list .me-clean-more{padding:14px 2px 2px;font-size:13px;font-weight:600}.me-v34-list .me-photo-overlay span{font-size:11px;padding:4px 7px}
.me-donation-mini-list{display:grid;gap:9px;margin-top:12px}.me-donation-mini{background:#fff;border:1px solid var(--line);border-radius:15px;padding:0 13px}.me-donation-mini>a{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 0;color:inherit}.me-donation-mini>a>div{min-width:0}.me-donation-mini strong{display:block;font-size:15px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-donation-mini small{display:block;margin-top:4px;color:var(--muted);font-size:13px}.me-donation-mini>a>b{font-family:Georgia,serif;color:var(--red);font-size:17px;white-space:nowrap}.me-donation-mini .me-record-actions{margin-top:0;padding:10px 0 12px}
.me-v34-links>a{min-height:50px;padding:15px 14px}.me-v34-links span{font-size:15px}.me-v34-links em{font-size:22px}
.me-profile-page-head{padding-bottom:10px}.me-profile-page-head h1{margin-top:10px}.me-profile-back{display:inline-flex;align-items:center;min-height:34px;color:var(--red);font-size:14px;font-weight:600}.me-profile-progress-card{margin:0 14px 14px;padding:15px 16px;background:#fff;border:1px solid var(--line);border-radius:17px}.me-profile-progress-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}.me-profile-progress-card>div:first-child b{font-size:18px;color:var(--red)}.me-profile-progress-track{height:7px;margin-top:9px;border-radius:99px;background:#eee7de;overflow:hidden}.me-profile-progress-track i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--red),var(--theme-accent))}.me-profile-progress-card small{display:block;margin-top:9px;color:var(--muted);font-size:12px;line-height:1.6}.me-profile-page-form .field{margin-bottom:17px}.me-profile-page-form .field label{font-size:15px;margin-bottom:8px}.me-profile-page-form .field input,.me-profile-page-form .field textarea,.me-profile-page-form .field select{min-height:46px;font-size:16px}.me-profile-page-form .field textarea{min-height:110px}.me-profile-custom-title{margin:20px 0 14px;padding-top:17px;border-top:1px solid var(--line);font-size:17px;font-weight:700}.me-profile-choice{display:flex;gap:10px;flex-wrap:wrap;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:#fff}.me-profile-choice label{display:flex!important;align-items:center;gap:6px;margin:0!important;font-size:15px!important;font-weight:500!important}.me-profile-choice input{width:auto!important;min-height:auto!important}.me-profile-current-image{display:flex;align-items:center;gap:12px;margin-bottom:9px}.me-profile-current-image img{width:96px;height:96px;object-fit:cover;border-radius:11px;border:1px solid var(--line)}.me-profile-current-image label{display:flex!important;align-items:center;gap:6px;margin:0!important;font-size:14px!important}.me-profile-current-image input{width:auto!important;min-height:auto!important}.me-profile-save{min-height:52px;font-size:17px;border-radius:14px;margin-top:4px}
@media(max-width:360px){.me-v34-hero .me-clean-avatar{width:60px;height:60px}.me-v34-hero .me-clean-name{font-size:21px}.me-v34-stats b{font-size:17px}.me-v34-stats span{font-size:12px}.me-v34-list .me-profile-entry b,.me-v34-list summary b{font-size:15px}.me-v34-list .me-profile-entry small,.me-v34-list summary small{font-size:12px}}
/* v4.3.35: graduation year is numeric-only; the unit is rendered by the UI. */
.graduation-year-control{display:flex;align-items:stretch;width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden}
.graduation-year-control:focus-within{border-color:var(--theme-primary-light);box-shadow:0 0 0 2px rgba(150,32,45,.08)}
.graduation-year-control input{flex:1;min-width:0;width:100%;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important}
.graduation-year-control>span{display:flex;align-items:center;justify-content:center;min-width:52px;padding:0 14px;border-left:1px solid var(--line);background:#faf7f4;color:#5f554f;font-size:16px;font-weight:700}


/* v4.3.51 activity types, e-ticket and check-in */
.activity-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 14px 8px;padding:5px;background:#fff;border:1px solid var(--line);border-radius:14px}.activity-tabs a{display:flex;align-items:center;justify-content:center;min-height:40px;padding:8px;border-radius:10px;color:#6b625c;font-size:14px;font-weight:700}.activity-tabs a.active{background:#f5e9eb;color:var(--red)}.activity-list-section{padding-top:8px}.activity-card{position:relative}.activity-card.is-ended{opacity:.72}.activity-card-tags{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:9px}.activity-type-tag,.activity-state-tag{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700}.activity-type-tag.offline{background:#f7eee4;color:#8a5b36}.activity-type-tag.online{background:#eaf2fb;color:#2c6595}.activity-state-tag{background:#f1f2f3;color:#666}.activity-state-tag.state-registering{background:#e7f5ed;color:#267148}.activity-state-tag.state-ongoing{background:#fff0dc;color:#98611e}.activity-state-tag.state-full,.activity-state-tag.state-closed,.activity-state-tag.state-ended{background:#f0f1f2;color:#777}.activity-state-tag.state-upcoming{background:#eeeaf8;color:#62528f}.activity-state-tag.state-paused{background:#fff3e7;color:#9a5b1f}.activity-card h3{margin:0 0 9px}.activity-summary{line-height:1.7}.activity-count{margin-top:8px;color:#746a64;font-size:12px}.activity-detail-head .activity-card-tags{margin:7px 0 10px}.activity-info-card .article-content{line-height:1.8}.activity-success-card .activity-ticket-btn{margin-top:14px}.ticket-checkin-ok{margin-top:14px;padding:10px 12px;border-radius:10px;background:#eaf6ef;color:#237148;font-weight:700;text-align:center}.online-entry-card{margin-top:14px;padding:14px;border-radius:12px;background:#f6f8fb;border:1px solid #e5e9ee}.online-entry-card>b{display:block;font-size:16px}.online-entry-card p{margin:7px 0 11px;color:#6e747b;line-height:1.65}.ticket-page-head{padding-bottom:10px}.ticket-card{position:relative;margin:0 14px 14px;padding:18px;background:#fff;border:1px solid #e7ded5;border-radius:20px;box-shadow:0 12px 30px rgba(85,59,40,.08);overflow:hidden}.ticket-card:before,.ticket-card:after{content:"";position:absolute;top:143px;width:24px;height:24px;border-radius:50%;background:var(--bg,#f7f3ee);border:1px solid #e7ded5}.ticket-card:before{left:-13px}.ticket-card:after{right:-13px}.ticket-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px dashed #ded4ca}.ticket-title>div{min-width:0}.ticket-title>div>span{display:block;color:#8a7e75;font-size:12px}.ticket-title h2{margin:5px 0 0;font-size:20px;line-height:1.4}.ticket-meta{display:grid;gap:5px;margin:14px 0;color:#665d56;font-size:13px}.ticket-person{display:flex;align-items:center;gap:9px;margin:14px 0 4px}.ticket-person b{font-size:19px}.ticket-person span{padding:3px 8px;border-radius:999px;background:#f6f1ec;color:#7b6658;font-size:12px}.ticket-qr-wrap{position:relative;display:flex;justify-content:center;margin:12px auto 8px;max-width:270px;padding:10px;border-radius:17px;background:#fff}.ticket-qr-wrap canvas{display:block;max-width:100%;height:auto}.ticket-used-mask{position:absolute;inset:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;background:rgba(255,255,255,.9);color:#27744f;text-align:center}.ticket-used-mask b{font-size:28px}.ticket-used-mask span{margin-top:7px;font-size:13px}.ticket-code{text-align:center;margin-top:5px}.ticket-code span{display:block;color:#8a817a;font-size:11px}.ticket-code b{display:block;margin-top:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:18px;letter-spacing:1.2px}.ticket-status{margin-top:15px;padding:10px 12px;border-radius:11px;text-align:center;font-size:13px;font-weight:700}.ticket-status.pending{background:#fff5e8;color:#8f5d1f}.ticket-status.checked{background:#eaf6ef;color:#27744f}.ticket-help p{margin:8px 0 0;color:#716862;line-height:1.75}@media(max-width:360px){.activity-tabs{margin-left:10px;margin-right:10px}.ticket-card{margin-left:10px;margin-right:10px;padding:15px}.ticket-title h2{font-size:18px}.ticket-qr-wrap{padding-left:0;padding-right:0}}

/* v4.3.55 reusable activity center UI */
.activity-hub-head{padding:30px 18px 18px;background:linear-gradient(180deg,#f7efe7 0,rgba(251,250,248,0) 100%)}.activity-hub-kicker{display:block;margin-bottom:7px;color:#a07b55;font:700 10px/1.2 Georgia,serif;letter-spacing:.22em}.activity-hub-head h1{margin:0;font:700 30px/1.2 Georgia,"Songti SC",serif;letter-spacing:.02em}.activity-hub-head p{margin:9px 0 0;max-width:520px;color:var(--muted);font-size:14px;line-height:1.75}.activity-list-section{padding-top:10px}.activity-card-v2{display:block;margin:0 0 12px;background:#fff;border:1px solid #e9e1d8;border-radius:20px;overflow:hidden;box-shadow:0 10px 28px rgba(70,48,31,.07);transition:transform .18s ease,box-shadow .18s ease}.activity-card-v2:active{transform:scale(.992)}.activity-card-v2.is-ended{filter:saturate(.74);opacity:.82}.activity-card-cover-v2{position:relative;aspect-ratio:1.9/1;background:#eadfd4;overflow:hidden}.activity-card-cover-v2>img{width:100%;height:100%;object-fit:cover;display:block}.activity-cover-placeholder,.activity-detail-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 76% 18%,rgba(255,255,255,.24),transparent 30%),linear-gradient(135deg,var(--theme-primary-dark) 0,var(--theme-primary) 58%,var(--theme-accent) 100%);color:#fff}.activity-cover-placeholder:before,.activity-detail-placeholder:before{content:"";position:absolute;width:170px;height:170px;border:1px solid rgba(235,205,151,.35);border-radius:50%;right:-48px;top:-65px}.activity-cover-placeholder span,.activity-detail-placeholder span{font:700 10px/1 Georgia,serif;letter-spacing:.24em;color:#f0d9ad;position:relative}.activity-cover-placeholder b,.activity-detail-placeholder b{margin-top:7px;font:700 42px/1 Georgia,serif;letter-spacing:.03em;position:relative}.activity-cover-placeholder small,.activity-detail-placeholder small{margin-top:4px;font:600 11px/1.2 Georgia,serif;letter-spacing:.18em;opacity:.82;position:relative}.activity-card-cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,14,12,.06) 35%,rgba(20,14,12,.5) 100%)}.activity-card-tags-overlay{position:absolute;left:12px;top:12px;margin:0}.activity-card-tags-overlay .activity-type-tag,.activity-card-tags-overlay .activity-state-tag{backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.38);box-shadow:0 3px 12px rgba(0,0,0,.08)}.activity-card-tags-overlay .activity-type-tag.offline{background:rgba(255,246,235,.9)}.activity-card-tags-overlay .activity-type-tag.online{background:rgba(237,246,255,.91)}.activity-card-tags-overlay .activity-state-tag{background:rgba(255,255,255,.9)}.activity-card-body-v2{padding:14px 15px 13px}.activity-card-body-v2 h2{margin:0;font-size:19px;line-height:1.38;letter-spacing:.01em}.activity-card-primary-meta{display:flex;align-items:center;gap:7px;min-width:0;margin-top:7px;color:#716760;font-size:12px;line-height:1.4}.activity-card-primary-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-card-primary-meta i{font-style:normal;color:#c3b6aa}.activity-card-body-v2>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:8px 0 0;color:#7b7169;font-size:13px;line-height:1.6}.activity-card-footer-v2{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:11px}.activity-card-footer-v2>div{min-width:0}.activity-card-footer-v2 strong{display:block;font-size:12px}.activity-card-footer-v2 small{display:block;margin-top:3px;color:#93877d;font-size:10px}.activity-card-cta{flex:0 0 auto;min-width:90px;min-height:36px;padding:8px 14px;border-radius:11px;background:linear-gradient(135deg,var(--theme-primary-dark),var(--theme-primary));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;line-height:1;box-shadow:none}.activity-card-cta.is-disabled{background:#eeeae6;color:#8d8279;box-shadow:none}.activity-card-progress{height:5px;margin-top:8px;border-radius:99px;background:#eee8e1;overflow:hidden}.activity-card-progress i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--theme-primary),var(--theme-accent))}
.activity-detail-hero{position:relative;min-height:330px;background:var(--theme-primary-dark);overflow:hidden}.activity-detail-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.activity-detail-hero.no-cover .activity-detail-placeholder{position:absolute}.activity-detail-hero.no-cover .activity-detail-placeholder b{font-size:58px}.activity-detail-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(19,13,12,.14) 10%,rgba(19,13,12,.18) 44%,rgba(19,13,12,.82) 100%)}.activity-detail-back{position:absolute;left:14px;top:14px;z-index:2;width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.9);color:#3c302a;font-size:30px;line-height:1;box-shadow:0 5px 15px rgba(0,0,0,.12);backdrop-filter:blur(8px)}.activity-detail-hero-content{position:absolute;z-index:2;left:18px;right:18px;bottom:22px;color:#fff}.activity-detail-hero-content .activity-card-tags{margin:0 0 11px}.activity-detail-hero-content .activity-type-tag,.activity-detail-hero-content .activity-state-tag{border:1px solid rgba(255,255,255,.28);box-shadow:none}.activity-detail-hero-content h1{margin:0;font:700 28px/1.32 Georgia,"Songti SC",serif;text-shadow:0 2px 15px rgba(0,0,0,.2)}.activity-detail-hero-content p{margin:9px 0 0;max-width:600px;color:rgba(255,255,255,.86);font-size:13px;line-height:1.65}.activity-detail-main{position:relative;margin-top:-1px;padding:17px 14px 0;background:#fbfaf8;border-radius:22px 22px 0 0}.activity-key-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.activity-key-date{grid-column:1/-1;display:grid;grid-template-columns:68px minmax(0,1fr);gap:13px;align-items:center;padding:13px;background:#fff;border:1px solid #eae2d9;border-radius:17px}.activity-date-block{height:68px;border-radius:14px;background:linear-gradient(145deg,#f8ede8,#fff8f0);display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #ecd9ce}.activity-date-block>span{font:700 9px/1 Georgia,serif;letter-spacing:.12em;color:#9a6657}.activity-date-block>b{margin:2px 0;font:700 27px/1 Georgia,serif;color:var(--theme-primary-dark)}.activity-date-block>small{font-size:10px;color:#756a62}.activity-key-date>div:last-child strong,.activity-key-date>div:last-child span{display:block}.activity-key-date>div:last-child strong{font-size:15px}.activity-key-date>div:last-child span{margin-top:5px;color:#81766d;font-size:12px}.activity-key-item{min-width:0;display:flex;align-items:center;gap:10px;padding:13px;background:#fff;border:1px solid #eae2d9;border-radius:17px}.activity-key-icon{flex:0 0 auto;width:34px;height:34px;border-radius:11px;background:#f8efea;color:var(--theme-primary);display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700}.activity-key-item div{min-width:0}.activity-key-item small,.activity-key-item strong{display:block}.activity-key-item small{color:#9a8e84;font-size:10px}.activity-key-item strong{margin-top:4px;font-size:12px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-capacity-line{margin-top:10px;padding:13px 14px;background:#fff;border:1px solid #eae2d9;border-radius:17px}.activity-capacity-line>div:first-child{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#847970}.activity-capacity-line>div:first-child b{color:#4f443e}.activity-my-pass{margin-top:14px;padding:17px;background:linear-gradient(145deg,#fff,#faf4ed);border:1px solid #e8ddd2;border-radius:20px;box-shadow:0 9px 25px rgba(65,42,24,.055)}.activity-my-pass-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.activity-my-pass-top span{display:block;color:#9f7c5f;font:700 9px/1 Georgia,serif;letter-spacing:.16em}.activity-my-pass-top b{display:block;margin-top:5px;font-size:17px}.activity-my-pass-top em{width:36px;height:36px;border-radius:50%;background:#f2e4df;color:var(--theme-primary);display:flex;align-items:center;justify-content:center;font-style:normal;font-size:19px}.activity-my-pass-person{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:13px;border-top:1px dashed #ddd1c7}.activity-my-pass-person strong{font-size:16px}.activity-my-pass-person span{padding:3px 8px;border-radius:99px;background:#f4ebe5;color:#7c6658;font-size:11px}.activity-inline-link{display:flex;align-items:center;justify-content:space-between;margin-top:13px;padding:12px 13px;border-radius:13px;background:var(--theme-primary);color:#fff;font-size:13px;font-weight:700}.activity-inline-link b{font-size:17px}.activity-cancel-form{margin-top:12px}.activity-content-section{margin-top:14px;padding:20px 17px;background:#fff;border:1px solid #eae2d9;border-radius:20px}.activity-section-title>span{display:block;color:#a78260;font:700 9px/1 Georgia,serif;letter-spacing:.22em}.activity-section-title h2{margin:5px 0 17px;font:700 21px/1.3 Georgia,"Songti SC",serif}.activity-article-content{font-size:15px;line-height:1.9;color:#3f3935}.activity-article-content img{border-radius:14px}.activity-content-empty{margin:0;color:#90857c;font-size:13px;line-height:1.8}.activity-action-spacer{height:96px}.activity-action-bar{position:fixed;z-index:29;left:50%;transform:translateX(-50%);bottom:68px;width:min(720px,100%);min-height:72px;padding:10px 14px;display:flex;align-items:center;gap:13px;background:rgba(255,255,255,.97);border-top:1px solid #ebe3da;box-shadow:0 -8px 26px rgba(54,37,25,.08);backdrop-filter:blur(16px)}.activity-action-info{min-width:0;flex:1}.activity-action-info small,.activity-action-info strong{display:block}.activity-action-info small{color:#8d8178;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-action-info strong{margin-top:3px;font-size:13px}.activity-action-button{flex:0 0 auto;min-width:148px;min-height:48px;padding:11px 18px;border:0;border-radius:14px;background:linear-gradient(135deg,var(--theme-primary-dark),var(--theme-primary));color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;font-family:inherit;line-height:1;box-shadow:none;cursor:pointer}.activity-action-button.is-disabled{background:#d7d1ca;color:#8b8178;box-shadow:none;cursor:default}.activity-sheet-backdrop{position:fixed;z-index:80;inset:0;background:rgba(28,21,18,.45);display:flex;align-items:flex-end;justify-content:center;padding:0;backdrop-filter:blur(3px)}.activity-sheet{width:min(720px,100%);max-height:min(86vh,760px);overflow:auto;padding:8px 18px calc(20px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:#fff;box-shadow:0 -18px 50px rgba(0,0,0,.16);animation:activitySheetIn .22s ease-out}.activity-sheet-handle{width:42px;height:4px;margin:2px auto 13px;border-radius:99px;background:#ddd4cd}.activity-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.activity-sheet-head span{display:block;color:#a78260;font:700 9px/1 Georgia,serif;letter-spacing:.18em}.activity-sheet-head h2{margin:5px 0 0;font-size:24px}.activity-sheet-close{width:38px;height:38px;border:0;border-radius:50%;background:#f4f1ed;color:#6d625b;font-size:25px;line-height:1;cursor:pointer}.activity-sheet-event{margin:8px 0 18px;color:#80756d;font-size:13px;line-height:1.6}.activity-sheet-submit{min-height:50px;font-size:16px}.activity-sheet-open{overflow:hidden}@keyframes activitySheetIn{from{transform:translateY(22px);opacity:.6}to{transform:translateY(0);opacity:1}}
.ticket-page-kicker{display:block;margin:7px 0 5px;color:#a78260;font:700 9px/1 Georgia,serif;letter-spacing:.22em}.ticket-card-v2{padding:0;border-radius:22px}.ticket-cover-strip{position:relative;height:116px;background:linear-gradient(135deg,var(--theme-primary-dark),var(--theme-primary) 58%,var(--theme-accent));overflow:hidden}.ticket-cover-strip>img{width:100%;height:100%;object-fit:cover;display:block}.ticket-cover-strip>i{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,12,10,.04),rgba(20,12,10,.38))}.ticket-cover-strip>div{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}.ticket-cover-strip>div span{font:700 9px/1 Georgia,serif;letter-spacing:.22em;color:#f0d9ad}.ticket-cover-strip>div b{margin-top:6px;font:700 32px/1 Georgia,serif}.ticket-v2-content{padding:18px}.ticket-title-v2{padding-bottom:12px}.ticket-title-v2>div>span{font:700 10px/1.2 Georgia,"Songti SC",serif;letter-spacing:.08em}.ticket-v2-date{display:flex;align-items:center;gap:13px;margin:14px 0}.ticket-v2-date>div{width:54px;height:58px;border-radius:13px;background:#f8efea;display:flex;flex-direction:column;align-items:center;justify-content:center}.ticket-v2-date>div span{font:700 8px/1 Georgia,serif;letter-spacing:.12em;color:#9b6b59}.ticket-v2-date>div b{margin-top:3px;font:700 24px/1 Georgia,serif;color:var(--theme-primary-dark)}.ticket-v2-date p{margin:0;min-width:0}.ticket-v2-date strong,.ticket-v2-date small{display:block}.ticket-v2-date strong{font-size:13px}.ticket-v2-date small{margin-top:5px;color:#857970;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket-person-v2{justify-content:space-between;margin:10px 0}.ticket-person-v2>div small,.ticket-person-v2>div b{display:block}.ticket-person-v2>div small{color:#94887f;font-size:10px}.ticket-person-v2>div b{margin-top:4px}.ticket-dash{height:1px;margin:17px -18px 10px;border-top:1px dashed #ded3c9}.ticket-qr-v2{margin-top:5px}.ticket-used-mask{background:rgba(255,255,255,.93)}
@media(max-width:430px){.activity-hub-head{padding-top:25px}.activity-card-body-v2{padding:13px 14px 12px}.activity-detail-hero{min-height:300px}.activity-detail-hero-content h1{font-size:25px}.activity-detail-main{padding-left:12px;padding-right:12px}.activity-key-grid{grid-template-columns:1fr}.activity-key-date{grid-column:auto}.activity-action-button{min-width:142px}.activity-content-section{padding-left:15px;padding-right:15px}}
@media(max-width:360px){.activity-key-date{grid-template-columns:60px minmax(0,1fr)}.activity-date-block{height:60px}.activity-action-info{display:none}.activity-action-button{width:100%}.activity-action-bar{padding-left:10px;padding-right:10px}}
.activity-sheet-backdrop[hidden]{display:none!important}

/* v4.3.58 unified activity / donation / personal-center UI */
.donation-hub-head,.me-hub-head{padding:30px 18px 16px;background:linear-gradient(180deg,#f7efe7 0,rgba(251,250,248,0) 100%)}
.donation-hub-head .activity-hub-kicker,.me-hub-head .activity-hub-kicker{color:#a07b55}
.donation-hub-head h1,.me-hub-head h1{font:700 30px/1.2 Georgia,"Songti SC",serif;letter-spacing:.02em}
.donation-hub-head p,.me-hub-head p{font-size:14px;line-height:1.75;color:var(--muted)}

/* Donation supporting pages */
.donation-card{border-color:#e9e1d8;border-radius:20px;box-shadow:0 10px 28px rgba(70,48,31,.055)}
.donation-card-person strong{font-size:15px}.donation-card-person small{color:#81766d}.donation-card-amount{color:var(--theme-primary)}
.donation-card-bottom{border-color:#eee5dc}.donation-transaction{border-radius:11px;background:#faf8f5}
.donation-status{border-radius:999px}.donation-status.is-paid{background:#e7f5ed;color:#267148}.donation-status.is-pending{background:#fff0dc;color:#98611e}.donation-status.is-failed{background:#f0f1f2;color:#777}
.me-donation-detail-head{padding-bottom:14px}.donation-summary{gap:9px;padding-bottom:12px}.donation-summary .stat{border-color:#e9e1d8;border-radius:17px;padding:14px 10px}.donation-summary .stat b{font-size:21px}.donation-summary .stat span{font-size:12px}
.me-donation-actions{gap:9px;margin-bottom:12px}.me-donation-actions .btn{min-height:44px;border-radius:13px;box-shadow:none}.me-donation-actions .btn:first-child{background:linear-gradient(135deg,var(--theme-primary-dark),var(--theme-primary))}
.me-donation-history .section-head h2{font:700 20px/1.3 Georgia,"Songti SC",serif}.me-donation-pending{background:#f5e9eb;color:var(--theme-primary)}
.donation-result-head{padding:28px 18px 16px;background:linear-gradient(180deg,#f7efe7 0,rgba(251,250,248,0) 100%)}.donation-result-head .status-icon{width:64px;height:64px;margin:4px auto 16px;font-size:30px}.donation-result-head h1{font:700 28px/1.3 Georgia,"Songti SC",serif;margin-bottom:8px}.donation-result-head p{max-width:520px;margin:0 auto;color:#81766d;font-size:14px;line-height:1.75}
.donation-detail-card{border-color:#e9e1d8;border-radius:20px;box-shadow:0 10px 28px rgba(70,48,31,.055);padding:17px}.donation-detail-card .donor-row{padding:12px 0}.donation-detail-card .donor-row:first-child{padding-top:2px}.donation-detail-card .donor-row:last-child{padding-bottom:2px;border-bottom:0}
.pay-loading{margin:18px 14px;padding:38px 22px;background:#fff;border:1px solid #e9e1d8;border-radius:20px;box-shadow:0 10px 28px rgba(70,48,31,.055)}.pay-loading h2{font:700 23px/1.35 Georgia,"Songti SC",serif}.pay-loading .btn{min-width:150px;border-radius:14px;background:linear-gradient(135deg,var(--theme-primary-dark),var(--theme-primary));box-shadow:none}

/* Personal center */
.me-hub-head{padding-bottom:14px}.me-clean-hero.me-v34-hero{margin-top:0;border-color:#e9e1d8;border-radius:20px;box-shadow:0 10px 28px rgba(70,48,31,.055);background:#fff;padding:17px}.me-v34-hero .me-clean-avatar{border:3px solid #fff;box-shadow:0 0 0 1px #eadfd6}.me-v34-hero .me-clean-name{font:700 22px/1.3 Georgia,"Songti SC",serif}.me-v34-hero .me-clean-meta{color:#81766d;font-size:13px}
.me-profile-needed{color:#756a62}.me-profile-needed b{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:#f5e9eb;color:var(--theme-primary);font-size:12px}
.me-clean-stats.me-v34-stats{border-color:#e9e1d8;border-radius:20px;margin-bottom:14px;box-shadow:0 8px 24px rgba(70,48,31,.04)}.me-v34-stats a{min-height:66px;padding:13px 3px 12px}.me-v34-stats b{color:var(--theme-primary);font-family:Georgia,serif;font-size:18px}.me-v34-stats span{margin-top:5px;color:#716760;font-size:12px}
.me-v34-upcoming-section{padding-top:4px}.me-v34-upcoming-section .section-head{margin-bottom:10px}.me-v34-upcoming-section .section-head h2{font:700 20px/1.3 Georgia,"Songti SC",serif}.me-clean-upcoming.me-v34-upcoming{border-color:#e9e1d8;border-radius:20px;box-shadow:0 8px 24px rgba(70,48,31,.04)}.me-v34-upcoming>a{padding:13px 14px}.me-v34-upcoming time b{color:var(--theme-primary)}.me-v34-upcoming div i{background:#e7f5ed;color:#267148}
.me-clean-list.me-v34-list{border-color:#e9e1d8;border-radius:20px;box-shadow:0 10px 28px rgba(70,48,31,.05)}.me-v34-list .me-profile-entry,.me-v34-list summary{padding:15px 15px}.me-v34-list .me-profile-entry b,.me-v34-list summary b{font-size:15px}.me-v34-list .me-profile-entry small,.me-v34-list summary small{color:#81766d;font-size:12px}.me-clean-list details[open] summary{background:#fbf8f4}.me-v34-list .me-clean-fold-body{padding:0 13px 14px;background:#fff}.me-record-card{border-color:#e9e1d8;border-radius:17px;box-shadow:none}.me-v34-list .me-record-head strong{font-size:14px}.me-v34-list .me-record-head small{font-size:12px;color:#81766d}.me-record-actions .btn{box-shadow:none}.me-clean-more{color:var(--theme-primary);font-weight:700}
.me-donation-mini{border-color:#e9e1d8;border-radius:17px}.me-donation-mini strong{font-size:14px}.me-donation-mini small{font-size:12px;color:#81766d}.me-donation-mini>a>b{color:var(--theme-primary)}
.me-clean-links.me-v34-links{border-color:#e9e1d8;border-radius:20px;box-shadow:0 8px 24px rgba(70,48,31,.035)}.me-v34-links>a{min-height:48px;padding:14px 15px}.me-v34-links span{font-size:14px}

/* Personal profile */
.me-profile-page-head{padding-bottom:14px}.me-profile-page-head .me-profile-back{display:inline-flex;margin-bottom:13px;min-height:30px;padding:4px 9px;border:1px solid #e9e1d8;border-radius:999px;background:#fff;color:#756a62;font-size:12px}.me-profile-page-head .activity-hub-kicker{margin-bottom:7px}.me-profile-page-head h1{margin-top:0}
.me-profile-progress-card{border-color:#e9e1d8;border-radius:17px;padding:14px 15px}.me-profile-progress-card>div:first-child{font-size:13px}.me-profile-progress-card>div:first-child b{color:var(--theme-primary);font-family:Georgia,serif}.me-profile-progress-track{height:5px;background:#eee8e1}.me-profile-progress-track i{background:linear-gradient(90deg,var(--theme-primary),var(--theme-accent))}
.form-card.me-profile-page-form{border-color:#e9e1d8;border-radius:20px;box-shadow:0 10px 28px rgba(70,48,31,.05);padding:17px}.me-profile-page-form .field label{font-size:14px}.me-profile-page-form .field input,.me-profile-page-form .field textarea,.me-profile-page-form .field select{border-color:#e7dfd7;border-radius:12px;background:#fff;font-size:15px}.me-profile-page-form .field input:focus,.me-profile-page-form .field textarea:focus,.me-profile-page-form .field select:focus{border-color:var(--theme-primary-light);box-shadow:0 0 0 3px rgba(143,29,44,.08)}.me-profile-save{min-height:48px;border-radius:14px;background:linear-gradient(135deg,var(--theme-primary-dark),var(--theme-primary));font-size:15px;box-shadow:none}

@media(max-width:430px){.donation-hub-head,.me-hub-head{padding-top:25px}.me-clean-hero.me-v34-hero,.me-clean-stats.me-v34-stats,.me-clean-list.me-v34-list,.me-clean-links.me-v34-links{margin-left:12px;margin-right:12px}.me-profile-progress-card,.form-card.me-profile-page-form{margin-left:12px;margin-right:12px}.donation-detail-card,.pay-loading{margin-left:12px;margin-right:12px}}

/* v4.3.59 tighter formal-campus radius system */
:root{--ui-card-radius:16px;--ui-inner-radius:14px;--ui-button-radius:12px}
/* Activity center */
.activity-card-v2,.activity-my-pass,.activity-content-section,.ticket-card,.ticket-card-v2,.ticket-help{border-radius:var(--ui-card-radius)!important}
.activity-key-date,.activity-key-item,.activity-capacity-line{border-radius:var(--ui-inner-radius)!important}
.activity-card-cta,.activity-action-button,.activity-inline-link,.activity-sheet-submit{border-radius:var(--ui-button-radius)!important}
/* Donation */
.fund-card,.fund-wall-card,.donation-info-card,.fund-empty,.fund-section,.wall-list-card,.donation-card,.donation-detail-card,.pay-loading,.fund-donate-sheet .form-card{border-radius:var(--ui-card-radius)!important}
.fund-search-shell,.fund-category-wrap,.donation-summary .stat,.wall-stat,.fund-closed,.fund-invite-option{border-radius:var(--ui-inner-radius)!important}
.fund-sortbar{border-radius:0 0 var(--ui-inner-radius) var(--ui-inner-radius)!important}
.fund-category-wrap{border-radius:var(--ui-inner-radius) var(--ui-inner-radius) 0 0!important}
.me-donation-actions .btn,.pay-loading .btn,.fund-donate-sheet-submit,.fund-invite-tool.primary,.wall-load-more{border-radius:var(--ui-button-radius)!important}
/* Personal center */
.me-clean-hero.me-v34-hero,.me-clean-stats.me-v34-stats,.me-clean-upcoming.me-v34-upcoming,.me-clean-list.me-v34-list,.me-clean-links.me-v34-links,.form-card.me-profile-page-form{border-radius:var(--ui-card-radius)!important}
.me-record-card,.me-donation-mini,.me-profile-progress-card{border-radius:var(--ui-inner-radius)!important}
.me-record-actions .btn,.me-profile-save{border-radius:var(--ui-button-radius)!important}


/* v4.3.60 activity-led typography system for activity + donation */
:root{--ui-page-title-size:30px;--ui-page-subtitle-size:14px;--ui-section-title-size:21px;--ui-card-title-size:19px;--ui-body-size:15px;--ui-card-body-size:13px;--ui-meta-size:12px;--ui-caption-size:10px;--ui-action-size:15px}
/* Shared page headers */
.activity-hub-head h1,.donation-hub-head h1,.wall-page-head h1{font:700 var(--ui-page-title-size)/1.2 Georgia,"Songti SC",serif!important}
.activity-hub-head p,.donation-hub-head p,.wall-page-head p{font-size:var(--ui-page-subtitle-size)!important;line-height:1.75!important}
/* Donation list follows activity cards */
.fund-list-head h2,.donation-info-head h2{font:700 var(--ui-section-title-size)/1.3 Georgia,"Songti SC",serif!important}
.fund-card-title{font-size:var(--ui-card-title-size)!important;line-height:1.38!important}
.fund-card-intro,.fund-card-blessing,.fund-wall-card span{font-size:var(--ui-card-body-size)!important;line-height:1.6!important}
.fund-card-stats,.fund-card-foot,.fund-list-head span{font-size:var(--ui-meta-size)!important}
.fund-card-category,.fund-card-state{font-size:var(--ui-meta-size)!important}
.fund-card-cta{font-size:13px!important;font-weight:700!important}
.fund-wall-card b{font-size:var(--ui-card-title-size)!important;line-height:1.38!important}
.fund-wall-card em{font-size:13px!important}
.donation-rich{font-size:var(--ui-body-size)!important;line-height:1.9!important}
/* Donation project detail follows activity detail */
.fund-info h1{font:700 28px/1.32 Georgia,"Songti SC",serif!important}
.fund-intro{font-size:var(--ui-card-body-size)!important;line-height:1.65!important}
.fund-section-title{font:700 var(--ui-section-title-size)/1.3 Georgia,"Songti SC",serif!important}
.fund-rich{font-size:var(--ui-body-size)!important;line-height:1.9!important}
.fund-support-strip,.fund-info-meta,.fund-progress-meta{font-size:var(--ui-meta-size)!important}
.fund-action-main,.fund-donate-sheet-submit{font-size:var(--ui-action-size)!important}
.fund-donate-sheet-head h2{font-size:24px!important;line-height:1.3!important}
.fund-donate-sheet-head p,.fund-invite-guide,.fund-poster-help{font-size:var(--ui-card-body-size)!important}
.fund-donate-sheet .field label{font-size:13px!important}.fund-donate-sheet .field input,.fund-donate-sheet .field textarea,.fund-donate-sheet .field select{font-size:15px!important}
.fund-donate-sheet .hint,.fund-donate-sheet #donation-amount-hint,.fund-donate-sheet .fund-public-choice .hint{font-size:12px!important;line-height:1.6!important}
.fund-donate-sheet .fund-public-choice,.fund-donate-sheet .fund-public-choice>span{font-size:14px!important}
/* Donation wall + payment/result pages */
.wall-stat b{font-size:21px!important}.wall-stat span,.wall-donor-date{font-size:var(--ui-meta-size)!important}.wall-project-filter label{font-size:13px!important}.wall-project-filter select{font-size:14px!important}
.wall-donor-name{font-size:15px!important}.wall-donor-amount{font-size:16px!important}.wall-donor-blessing{font-size:var(--ui-card-body-size)!important;line-height:1.6!important}.wall-load-more{font-size:var(--ui-action-size)!important}
.donation-result-head h1{font:700 28px/1.32 Georgia,"Songti SC",serif!important}.donation-result-head p{font-size:var(--ui-page-subtitle-size)!important;line-height:1.75!important}
.donation-detail-card .donor-row>span{font-size:var(--ui-meta-size)!important;color:#81766d}.donation-detail-card .donor-row>b{font-size:var(--ui-card-body-size)!important;line-height:1.5}.donation-detail-card .donation-big-amount{font-size:19px!important}
.pay-loading h2{font:700 var(--ui-section-title-size)/1.3 Georgia,"Songti SC",serif!important}.pay-loading .hint{font-size:var(--ui-card-body-size)!important;line-height:1.7!important}.pay-loading .btn{font-size:var(--ui-action-size)!important}
/* My donation records use the same donation hierarchy */
.me-donation-history .section-head h2{font:700 var(--ui-section-title-size)/1.3 Georgia,"Songti SC",serif!important}.donation-card-person strong{font-size:15px!important;line-height:1.4!important}.donation-card-person small,.donation-order,.donation-transaction{font-size:var(--ui-meta-size)!important;line-height:1.5!important}.donation-card-amount{font-size:18px!important}.donation-status{font-size:var(--ui-meta-size)!important}

/* v4.3.64 activity detail: compact date range + registrant avatars */
.activity-key-grid-v2{grid-template-columns:1fr}
.activity-time-row,.activity-registration-overview{grid-column:1/-1}
.activity-time-row strong{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.55}
.activity-registration-overview{align-items:flex-start}
.activity-registration-content{min-width:0;flex:1}
.activity-registration-content>strong{white-space:normal;overflow:visible;text-overflow:clip}
.activity-registrant-strip{display:flex;align-items:center;gap:8px;margin-top:11px;padding:1px 1px 4px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain}
.activity-registrant-strip::-webkit-scrollbar{display:none}
.activity-registrant-avatar{width:38px;height:38px;flex:0 0 38px;border-radius:50%;overflow:hidden;border:2px solid #fff;box-shadow:0 0 0 1px #e7ddd5;background:#f3ebe6;display:flex;align-items:center;justify-content:center}
.activity-registrant-avatar img{width:100%;height:100%;display:block;object-fit:cover}
.activity-registrant-avatar i{width:100%;height:100%;align-items:center;justify-content:center;background:#f3e7e4;color:var(--theme-primary);font-size:13px;font-style:normal;font-weight:700}
@media(max-width:360px){.activity-time-row strong{font-size:11px}.activity-registrant-avatar{width:36px;height:36px;flex-basis:36px}}

/* v4.3.65 activity detail share */
.activity-action-share{appearance:none;border:0;width:44px;height:44px;flex:0 0 44px;min-height:44px;padding:0;border-radius:50%;background:linear-gradient(135deg,var(--theme-primary-dark),var(--theme-primary));color:#fff;font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;box-shadow:none;cursor:pointer}.activity-action-share-icon{display:block;width:18px;height:18px;flex:0 0 18px;margin:0 0 1px}.activity-action-share span{font-size:9px;font-weight:700;line-height:1;color:#fff}.activity-share-open{overflow:hidden}.activity-share-modal[hidden]{display:none!important}.activity-share-modal{position:fixed;z-index:140;inset:0;display:flex;align-items:flex-end;justify-content:center}.activity-share-backdrop{position:absolute;inset:0;border:0;background:rgba(30,24,21,.52);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.activity-share-sheet{position:relative;z-index:1;width:min(720px,100%);max-height:92vh;display:flex;flex-direction:column;background:#fbfaf8;border-radius:16px 16px 0 0;overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}.activity-share-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;background:#fff;border-bottom:1px solid #eee8e4}.activity-share-head h2{margin:0;font-size:19px;color:#2f2926}.activity-share-close{appearance:none;border:0;width:36px;height:36px;border-radius:50%;background:#f4f0ec;color:#6f6660;font-size:24px;line-height:1}.activity-share-body{padding:14px 14px 18px;overflow:auto;-webkit-overflow-scrolling:touch}.activity-share-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.activity-share-option{appearance:none;border:1px solid #eadfda;border-radius:14px;background:#fff;padding:16px 12px;text-align:center;font:inherit;color:#302b28}.activity-share-option b{display:block;font-size:16px;color:var(--theme-primary)}.activity-share-option-icon{display:flex!important;align-items:center;justify-content:center;width:36px;height:36px;margin:0 auto 9px;border-radius:11px;background:#f8e9e9;color:var(--theme-primary)!important;font-size:20px!important;font-weight:900}.activity-share-guide{margin-top:10px;padding:12px 13px;border:1px solid #ead7d1;border-radius:12px;background:#fff;color:#554c47;font-size:13px;line-height:1.7}.activity-share-guide b{color:var(--theme-primary)}.activity-share-guide[hidden]{display:none!important}.activity-share-tools{display:flex;gap:8px;margin-top:10px}.activity-share-tool{appearance:none;border:1px solid #e5dcd7;border-radius:12px;background:#fff;padding:10px 12px;color:#6e625c;font:inherit;font-size:13px;flex:1}.activity-share-tool.primary{border-color:#e2c8ca;color:var(--theme-primary);background:#fff8f8}.activity-poster-stage{margin-top:14px;padding-top:14px;border-top:1px solid #eee6e0}.activity-poster-stage[hidden],.activity-poster-preview[hidden],.activity-poster-help[hidden]{display:none!important}.activity-poster-status{padding:14px;border-radius:12px;background:#f4f0ec;color:#756a63;text-align:center;font-size:13px}.activity-poster-preview{margin-top:10px;text-align:center}.activity-poster-preview img{display:block;width:min(100%,420px);height:auto;margin:0 auto;border:1px solid #e2d8d1;border-radius:12px;background:#fff}.activity-poster-help{margin-top:9px;text-align:center;color:#8d8178;font-size:12px}.activity-poster-canvas{position:fixed;left:-10000px;top:-10000px;width:1px;height:1px;pointer-events:none}.activity-share-toast{position:fixed;z-index:170;left:50%;bottom:158px;transform:translate(-50%,16px);padding:9px 14px;border-radius:99px;background:rgba(40,34,31,.92);color:#fff;font-size:12px;opacity:0;pointer-events:none;transition:.2s ease;white-space:nowrap}.activity-share-toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:430px){.activity-action-bar{gap:9px}.activity-action-share{width:42px;height:42px;flex-basis:42px;min-height:42px}.activity-action-share-icon{width:17px;height:17px;flex-basis:17px}.activity-action-button{min-width:132px;padding-left:14px;padding-right:14px}.activity-share-body{padding-left:12px;padding-right:12px}}
@media(max-width:360px){.activity-action-info{display:none}.activity-action-share{width:40px;height:40px;flex-basis:40px;min-height:40px}.activity-action-share-icon{width:16px;height:16px;flex-basis:16px}.activity-action-button{width:auto;min-width:0;flex:1}}

/* v4.3.69 activity dynamic registration form */
.activity-dynamic-field{margin-bottom:15px}.activity-field-help{margin-top:6px}.activity-choice-list{display:grid;gap:8px}.activity-choice{display:flex!important;align-items:flex-start;gap:9px;margin:0!important;padding:10px 11px;border:1px solid #e5ddd5;border-radius:12px;background:#fbfaf8;font-size:14px!important;font-weight:500!important;line-height:1.45;cursor:pointer}.activity-choice input{width:auto!important;flex:0 0 auto;margin:2px 0 0!important;accent-color:var(--red)}.activity-choice span{min-width:0;word-break:break-word}.activity-sheet .field select{width:100%;border:1px solid #ded8cf;background:#fff;border-radius:11px;padding:11px 12px;font:inherit;color:var(--ink);outline:none}.activity-sheet .field select:focus{border-color:var(--theme-primary-light);box-shadow:0 0 0 3px rgba(143,29,44,.08)}

/* v4.3.70 activity advanced registration */
.activity-conditional-hidden{display:none!important}.activity-review-banner{margin:0 0 15px;padding:12px 13px;border:1px solid #edd7b9;border-radius:14px;background:#fff8eb;color:#6f5230}.activity-review-banner b,.activity-review-banner span{display:block}.activity-review-banner b{font-size:14px}.activity-review-banner span{margin-top:4px;font-size:12px;line-height:1.6;color:#8a6a45}.activity-review-note{margin-top:13px;padding:11px 12px;border-radius:13px;font-size:12px;line-height:1.65}.activity-review-note b,.activity-review-note span{display:block}.activity-review-note.is-pending{background:#fff5e7;color:#79562d;border:1px solid #f0ddc2}.activity-review-note.is-rejected{background:#f8eded;color:var(--theme-primary-dark);border:1px solid #efd6d8}.activity-review-note.is-rejected span{margin-top:3px;color:var(--theme-primary)}.activity-my-pass.is-pending{background:linear-gradient(145deg,#fff,#fff9ef);border-color:#eadbc6}.activity-my-pass.is-rejected{background:linear-gradient(145deg,#fff,#fbf3f3);border-color:#ead8d8}.activity-capacity-group-field{margin-bottom:16px}.activity-capacity-group-list{display:grid;gap:8px}.activity-capacity-group-choice{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid #e3dbd3;border-radius:14px;background:#fbfaf8;cursor:pointer}.activity-capacity-group-choice input{width:auto!important;margin:0!important;accent-color:var(--red)}.activity-capacity-group-choice span{display:block;min-width:0}.activity-capacity-group-choice b,.activity-capacity-group-choice small{display:block}.activity-capacity-group-choice b{font-size:14px}.activity-capacity-group-choice small{margin-top:3px;color:#8a7f76;font-size:11px}.activity-capacity-group-choice:has(input:checked){border-color:var(--theme-primary-light);background:#fff7f7;box-shadow:0 0 0 2px rgba(143,29,44,.05)}.activity-capacity-group-choice.is-full{opacity:.55;cursor:not-allowed}.activity-upload-control{padding:9px!important;background:#fbfaf8!important}.activity-upload-control::file-selector-button{margin-right:10px;padding:8px 11px;border:0;border-radius:10px;background:var(--theme-primary);color:#fff;font:600 12px/1 inherit}.activity-upload-hint{margin-top:5px}.registration-detail-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px}.registration-detail-stats>div>span{display:block;color:#8a817a;font-size:12px}.registration-detail-stats>div>b{display:block;margin-top:6px;font-size:14px}.registration-detail-stats .status{font-style:normal}.registration-review-history{margin-top:20px;padding-top:15px;border-top:1px dashed #ddd4cc}.registration-review-history>b,.registration-review-history>span{display:inline-block}.registration-review-history>span{margin-left:10px;color:#8a817a;font-size:12px}.registration-review-history p{margin:7px 0 0;line-height:1.7}.registration-review-actions{display:flex;gap:10px;flex-wrap:wrap}.registration-upload-image{display:inline-flex;flex-direction:column;gap:7px;max-width:260px;color:var(--theme-primary)}.registration-upload-image img{display:block;max-width:240px;max-height:200px;object-fit:contain;border:1px solid #e5ddd5;border-radius:12px;background:#f8f5f2}.registration-upload-image span{font-size:12px;word-break:break-all}.status.wait{background:#fff0dc;color:#98611e}.btn.red-outline{background:#fff;border:1px solid var(--theme-primary-light);color:var(--theme-primary-text)}.btn.red-outline:hover{background:#fff5f5}
@media(max-width:520px){.activity-capacity-group-choice{padding:10px}.registration-detail-stats{grid-template-columns:1fr 1fr}}

/* v4.3.114 Page DIY runtime: activities / donations / me */
.page-diy-runtime{display:flex;flex-direction:column;min-height:calc(100vh - 68px);background:var(--diy-page-bg,#fbfaf8)}
.page-diy-runtime [data-diy-module]{position:relative}
.page-diy-runtime[data-diy-page="activities"] .activity-card-v2,
.page-diy-runtime[data-diy-page="donations"] .fund-card,
.page-diy-runtime[data-diy-page="donations"] .fund-wall-card,
.page-diy-runtime[data-diy-page="donations"] .donation-info-card,
.page-diy-runtime[data-diy-page="me"] .me-v34-hero,
.page-diy-runtime[data-diy-page="me"] .me-v34-upcoming,
.page-diy-runtime[data-diy-page="me"] .me-v34-list,
.page-diy-runtime[data-diy-page="me"] .me-v34-links{box-shadow:var(--diy-card-shadow)!important}
.page-diy-runtime[data-diy-page="activities"] .activity-tabs a.active,
.page-diy-runtime[data-diy-page="donations"] .donate-switch button.active{color:var(--red)}
.page-diy-runtime[data-diy-page="activities"] .activity-card-cta:not(.is-disabled),
.page-diy-runtime[data-diy-page="activities"] .activity-card-progress i{background:var(--red)}
.page-diy-runtime[data-diy-page="donations"] .fund-card-stats strong,
.page-diy-runtime[data-diy-page="donations"] .fund-card-cta,
.page-diy-runtime[data-diy-page="donations"] .fund-empty a,
.page-diy-runtime[data-diy-page="me"] .me-clean-more,
.page-diy-runtime[data-diy-page="me"] .me-profile-needed b{color:var(--red)}
.page-diy-runtime[data-diy-page="donations"] .fund-card-progress i{background:linear-gradient(90deg,var(--red),var(--gold))}

/* Page-wide spacing choices are intentionally restrained so mobile layouts stay safe. */
.page-diy-runtime.diy-spacing-compact[data-diy-page="activities"] .activity-hub-head,
.page-diy-runtime.diy-spacing-compact[data-diy-page="donations"] .donation-hub-head,
.page-diy-runtime.diy-spacing-compact[data-diy-page="me"] .me-hub-head{padding-bottom:10px}
.page-diy-runtime.diy-spacing-compact[data-diy-page="activities"] .activity-list-section{padding-bottom:12px}
.page-diy-runtime.diy-spacing-compact[data-diy-page="me"] .me-clean-section{padding-bottom:10px}
.page-diy-runtime.diy-spacing-spacious[data-diy-page="activities"] .activity-hub-head,
.page-diy-runtime.diy-spacing-spacious[data-diy-page="donations"] .donation-hub-head,
.page-diy-runtime.diy-spacing-spacious[data-diy-page="me"] .me-hub-head{padding-bottom:22px}
.page-diy-runtime.diy-spacing-spacious[data-diy-page="activities"] .activity-list-section{padding-bottom:28px}
.page-diy-runtime.diy-spacing-spacious[data-diy-page="me"] .me-clean-section{padding-bottom:24px}

/* Activity list compact layout */
.activity-list-section.diy-layout-compact .activity-card-v2{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:stretch}
.activity-list-section.diy-layout-compact .activity-card-cover-v2{height:100%;min-height:154px;aspect-ratio:auto}
.activity-list-section.diy-layout-compact .activity-card-body-v2{min-width:0;padding:12px 13px}
.activity-list-section.diy-layout-compact .activity-card-body-v2 h2{font-size:17px}
.activity-list-section.diy-layout-compact .activity-card-body-v2>p{-webkit-line-clamp:1;margin-top:6px}
.activity-list-section.diy-layout-compact .activity-card-footer-v2{margin-top:8px;align-items:center}
.activity-list-section.diy-layout-compact .activity-card-footer-v2 small{display:none}
.activity-list-section.diy-layout-compact .activity-card-cta{min-width:72px;min-height:32px;padding:7px 10px;font-size:12px}
.activity-list-section.diy-layout-compact .activity-card-progress{margin-top:6px}
.activity-list-section.diy-layout-editorial .activity-card-v2:first-of-type .activity-card-cover-v2{aspect-ratio:1.7/1}

/* Donation project list compact layout */
.donate-panel.diy-layout-compact .fund-project-list{gap:8px}
.donate-panel.diy-layout-compact .fund-card{grid-template-columns:88px minmax(0,1fr);gap:9px;padding:9px}
.donate-panel.diy-layout-compact .fund-card-cover{width:88px;height:100px;border-radius:var(--ui-inner-radius)}
.donate-panel.diy-layout-compact .fund-card-title{font-size:16px!important}
.donate-panel.diy-layout-compact .fund-card-intro{margin-top:4px;-webkit-line-clamp:1;min-height:auto}
.donate-panel.diy-layout-compact .fund-card-stats{margin-top:5px}
.donate-panel.diy-layout-compact .fund-card-stats strong{font-size:16px!important}
.donate-panel.diy-layout-compact .fund-card-foot{margin-top:5px}
.donate-panel.diy-layout-compact .fund-card-blessing{padding:7px 8px}
.donate-panel.diy-layout-editorial .fund-card:first-child{grid-template-columns:142px minmax(0,1fr)}
.donate-panel.diy-layout-editorial .fund-card:first-child .fund-card-cover{width:142px;height:136px}

/* Personal center responds to the shared theme without exposing arbitrary CSS. */
.page-diy-runtime[data-diy-page="me"] .me-v34-list details[open] summary{background:var(--diy-page-bg,#fbfaf8)}
.page-diy-runtime[data-diy-page="me"] .me-v34-links>a:active,
.page-diy-runtime[data-diy-page="me"] .me-v34-list summary:active,
.page-diy-runtime[data-diy-page="me"] .me-profile-entry:active{background:var(--diy-page-bg,#fbfaf8)}

/* Reduced motion in DIY applies locally to the page, not to admin/global UI. */
.page-diy-runtime.diy-motion-reduced *,
.page-diy-runtime.diy-motion-reduced *:before,
.page-diy-runtime.diy-motion-reduced *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}

@media(max-width:380px){
  .activity-list-section.diy-layout-compact .activity-card-v2{grid-template-columns:104px minmax(0,1fr)}
  .activity-list-section.diy-layout-compact .activity-card-cover-v2{min-height:148px}
  .activity-list-section.diy-layout-compact .activity-card-body-v2{padding:10px 11px}
  .activity-list-section.diy-layout-compact .activity-card-footer-v2{display:block}
  .activity-list-section.diy-layout-compact .activity-card-cta{margin-top:7px;width:100%}
  .donate-panel.diy-layout-editorial .fund-card:first-child{grid-template-columns:104px minmax(0,1fr)}
  .donate-panel.diy-layout-editorial .fund-card:first-child .fund-card-cover{width:104px;height:118px}
}

/* v4.3.133 message center */
.bottom-nav a{position:relative}.nav-svg-icon{position:relative}.nav-unread-badge{position:absolute;right:-9px;top:-7px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--theme-primary);color:#fff;font:700 9px/17px Arial,sans-serif;text-align:center;font-style:normal;box-shadow:0 0 0 2px #fff}.me-message-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;font:700 10px/18px Arial,sans-serif;font-style:normal;vertical-align:1px}.message-page{padding:22px 14px 96px;max-width:760px;margin:0 auto}.message-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}.message-page-head h1{margin:5px 0 5px;font:700 30px/1.2 Georgia,"Songti SC",serif}.message-page-head p{margin:0;color:#7b7470;font-size:13px}.message-list{overflow:hidden;border:1px solid rgba(91,74,67,.1);border-radius:var(--ui-card-radius,18px);background:#fff;box-shadow:0 10px 28px rgba(69,54,46,.05)}.message-item{display:grid;grid-template-columns:9px minmax(0,1fr);gap:11px;padding:16px;border-bottom:1px solid #eee9e5}.message-item:last-child{border-bottom:0}.message-item.is-unread{background:#fffaf8}.message-dot{width:7px;height:7px;margin-top:7px;border-radius:50%;background:#d7d1cc}.message-item.is-unread .message-dot{background:var(--red)}.message-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.message-title-row strong{font-size:15px;line-height:1.45}.message-title-row time{flex:0 0 auto;color:#aaa19b;font-size:10px}.message-copy p{margin:6px 0 0;color:#706963;font-size:12px;line-height:1.7}.message-copy form{margin:8px 0 0}.message-action{appearance:none;border:0;background:none;padding:0;color:var(--red);font:700 11px/1.4 inherit;cursor:pointer}.message-list>.empty{padding:34px 18px}.me-clean-list>.me-profile-entry+.me-profile-entry{border-top:1px solid rgba(91,74,67,.08)}
@media(max-width:560px){.message-page{padding-top:18px}.message-page-head{align-items:flex-start}.message-page-head h1{font-size:27px}.message-item{padding:14px 13px}.message-title-row{gap:8px}}

/* v4.3.145 — three-item bottom navigation: Photos / Donate / Me.
   Donation button keeps the existing .bottom-nav-donate,.bottom-nav-featured UI unchanged. */
.bottom-nav.bottom-nav-three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.bottom-nav.bottom-nav-three>a{
  min-width:0;
}



/* v4.3.149 dynamic bottom navigation */
.bottom-nav-dynamic{display:grid;grid-template-columns:repeat(var(--nav-count,3),minmax(0,1fr))}.bottom-nav-dynamic.nav-count-2{--nav-count:2}.bottom-nav-dynamic.nav-count-3{--nav-count:3}.bottom-nav-dynamic.nav-count-4{--nav-count:4}.bottom-nav-dynamic.nav-count-5{--nav-count:5}


/* v4.3.151 unified bottom-navigation icon sizing
   Normal: 32x32 container / 24x24 artwork
   Featured: 36x36 container / 28x28 artwork
*/
.bottom-nav .nav-svg-icon{
  width:32px;
  height:32px;
  min-width:32px;
  min-height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  flex:0 0 32px;
  margin:0 auto 3px;
  position:relative;
}
.bottom-nav .nav-svg-icon > svg,
.bottom-nav .nav-svg-icon > img{
  display:block;
  width:24px !important;
  height:24px !important;
  max-width:24px;
  max-height:24px;
  object-fit:contain;
  object-position:center;
  flex:none;
}
.bottom-nav .bottom-nav-featured .nav-svg-icon{
  width:36px;
  height:36px;
  min-width:36px;
  min-height:36px;
  flex-basis:36px;
}
.bottom-nav .bottom-nav-featured .nav-svg-icon > svg,
.bottom-nav .bottom-nav-featured .nav-svg-icon > img{
  width:28px !important;
  height:28px !important;
  max-width:28px;
  max-height:28px;
}
.bottom-nav .nav-svg-icon.nav-image-icon img{
  object-fit:contain;
  object-position:center;
}
.bottom-nav a > b{
  margin-top:0;
  line-height:1.15;
}

/* v4.3.152 polished featured bottom-navigation button */
.bottom-nav.bottom-nav-dynamic{
  overflow:visible;
}
.bottom-nav.bottom-nav-dynamic .bottom-nav-featured{
  position:relative;
  z-index:4;
  transform:translateY(-10px);
  overflow:visible;
  transition:transform .18s ease, filter .18s ease;
}
.bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon{
  position:relative;
  width:46px;
  height:46px;
  min-width:46px;
  min-height:46px;
  flex-basis:46px;
  margin:0 auto 1px;
  border-radius:50%;
  background:var(--theme-primary);
  box-shadow:
    0 7px 16px rgba(164,44,53,.24),
    0 2px 5px rgba(164,44,53,.17),
    inset 0 1px 0 rgba(255,255,255,.34);
  isolation:isolate;
}
.bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon::before{
  content:"";
  position:absolute;
  inset:-5px;
  z-index:-1;
  border-radius:50%;
  background:rgba(164,44,53,.14);
  transform:scale(.96);
  animation:featuredNavGlow 3.6s ease-in-out infinite;
  pointer-events:none;
}
.bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon::after{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.20);
  pointer-events:none;
}
.bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon > svg,
.bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon > img{
  position:relative;
  z-index:1;
  width:28px !important;
  height:28px !important;
  max-width:28px;
  max-height:28px;
  object-fit:contain;
  object-position:center;
}
.bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon > svg{
  color:#fff;
  filter:drop-shadow(0 1px 1px rgba(80,25,31,.12));
}
.bottom-nav.bottom-nav-dynamic .bottom-nav-featured > b{
  font-weight:700;
  letter-spacing:.02em;
  transform:translateY(1px);
}
.bottom-nav.bottom-nav-dynamic .bottom-nav-featured.active .nav-svg-icon{
  box-shadow:
    0 8px 18px rgba(164,44,53,.29),
    0 2px 6px rgba(164,44,53,.19),
    0 0 0 4px rgba(164,44,53,.09),
    inset 0 1px 0 rgba(255,255,255,.36);
}
.bottom-nav.bottom-nav-dynamic .bottom-nav-featured:active{
  transform:translateY(-10px) scale(.96);
}
@keyframes featuredNavGlow{
  0%,100%{opacity:.45;transform:scale(.94)}
  50%{opacity:.82;transform:scale(1.08)}
}
@media (prefers-reduced-motion:reduce){
  .bottom-nav.bottom-nav-dynamic .bottom-nav-featured,
  .bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon::before{
    animation:none !important;
    transition:none !important;
  }
}


/* v4.3.178 校园蓝红：底部突出导航按钮使用蓝色呼吸灯 */
body.theme-campus-blue-red .bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon,
body[data-theme="campus_blue_red"] .bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon{
  background:linear-gradient(145deg,#0066CC 0%,#0066CC 58%,#004F9F 100%);
  border-color:rgba(255,255,255,.92);
  box-shadow:
    0 7px 16px rgba(0,102,204,.22),
    0 2px 5px rgba(0,79,159,.15),
    inset 0 1px 0 rgba(255,255,255,.34);
}
body.theme-campus-blue-red .bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon::before,
body[data-theme="campus_blue_red"] .bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon::before{
  background:rgba(0,102,204,.18);
  box-shadow:0 0 0 1px rgba(0,102,204,.06);
  animation:featuredNavGlowBlue 3.6s ease-in-out infinite;
}
body.theme-campus-blue-red .bottom-nav.bottom-nav-dynamic .bottom-nav-featured.active .nav-svg-icon,
body[data-theme="campus_blue_red"] .bottom-nav.bottom-nav-dynamic .bottom-nav-featured.active .nav-svg-icon{
  box-shadow:
    0 8px 18px rgba(0,102,204,.25),
    0 2px 6px rgba(0,79,159,.17),
    0 0 0 4px rgba(0,102,204,.10),
    inset 0 1px 0 rgba(255,255,255,.36);
}
body.theme-campus-blue-red .bottom-nav.bottom-nav-dynamic .bottom-nav-featured:hover .nav-svg-icon,
body[data-theme="campus_blue_red"] .bottom-nav.bottom-nav-dynamic .bottom-nav-featured:hover .nav-svg-icon{
  box-shadow:
    0 9px 20px rgba(0,102,204,.24),
    0 0 0 4px rgba(255,255,255,.98);
}
body.theme-campus-blue-red .bottom-nav.bottom-nav-dynamic .bottom-nav-featured > b,
body[data-theme="campus_blue_red"] .bottom-nav.bottom-nav-dynamic .bottom-nav-featured > b{
  color:#0066CC;
}
@keyframes featuredNavGlowBlue{
  0%,100%{
    opacity:.40;
    transform:scale(.94);
    box-shadow:0 0 0 0 rgba(0,102,204,.24);
  }
  50%{
    opacity:.78;
    transform:scale(1.08);
    box-shadow:0 0 0 7px rgba(0,102,204,.08);
  }
}
@media(prefers-reduced-motion:reduce){
  body.theme-campus-blue-red .bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon::before,
  body[data-theme="campus_blue_red"] .bottom-nav.bottom-nav-dynamic .bottom-nav-featured .nav-svg-icon::before{
    animation:none!important;
  }
}

/* DIY V2 custom image carousel */
.home120-diy-custom.home120-diy-swiper{position:relative;box-sizing:border-box;width:calc(100% - 32px);max-width:calc(100% - 32px);margin-left:16px;margin-right:16px;overflow:hidden;border-radius:8px;background:#eee8df;touch-action:pan-y}
.home120-diy-swiper .diy-swiper-track{aspect-ratio:16/9}
.home120-diy-swiper .diy-swiper-slide,.home120-diy-swiper .diy-swiper-slide a{width:100%;height:100%;display:block}
.home120-diy-swiper .diy-swiper-slide[hidden]{display:none!important}
.home120-diy-swiper .diy-swiper-slide img{display:block;width:100%;height:100%;object-fit:cover}
.home120-diy-swiper button{border:0;color:#fff;background:rgba(32,25,25,.65);cursor:pointer}
.diy-swiper-dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:4px}.diy-swiper-dots button{width:22px;height:22px;padding:7px;background:transparent}.diy-swiper-dots button:after{content:'';display:block;width:8px;height:8px;border-radius:50%;background:#ffffff80}.diy-swiper-dots button[aria-current=true]:after{background:#fff}
.home120-diy-swiper button:focus-visible{outline:3px solid #c8a35d;outline-offset:-3px}
