.home-news-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.home-news-card>img,.home-news-card>.news-image-placeholder{height:112px}
.home-news-card>div:last-child{padding:12px}
.home-news-card h3{font-size:14px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.home-news-card p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.home-news-card span{font-size:10px}
.quick-icon.contact{background:#dcefe6;color:#21684a}.contact-list{display:grid;gap:11px}.contact-card{display:grid;grid-template-columns:48px minmax(0,1fr) 62px;gap:12px;align-items:center;padding:16px;background:#fff;border:1px solid var(--line);border-radius:20px}.contact-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:#e1efe7;color:var(--forest);font-size:22px}.contact-card small{display:block;color:var(--muted);font-size:9px}.contact-card h2{margin:2px 0;font-size:15px}.contact-card p{margin:0;color:var(--muted);font:700 13px Manrope}.contact-card>a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;border-radius:15px;background:var(--forest);color:#fff;text-decoration:none}.contact-card>a i{font-size:20px}.contact-card>a span{font-size:9px;font-weight:700}
.realtime-status{position:fixed;left:50%;bottom:82px;transform:translateX(-50%);z-index:28;display:flex;align-items:center;gap:5px;max-width:calc(100% - 30px);padding:5px 10px;border:1px solid rgba(31,94,74,.12);border-radius:99px;background:rgba(239,247,242,.93);color:#477064;box-shadow:0 4px 16px rgba(28,49,44,.08);backdrop-filter:blur(10px);font-size:8px;pointer-events:none;opacity:.82;transition:.2s}.realtime-status.syncing i{animation:realtime-spin 1s linear infinite}.realtime-status.offline{background:#fff1ed;color:#a84b3b}.realtime-status.new{background:#fff4d9;color:#8b6216}.realtime-banner{position:fixed;left:50%;top:96px;transform:translate(-50%,-18px);z-index:45;display:flex;align-items:center;gap:7px;padding:10px 15px;border:0;border-radius:99px;background:#173f38;color:#fff;box-shadow:0 10px 30px rgba(23,63,56,.25);font-size:11px;font-weight:700;opacity:0;pointer-events:none;transition:.25s}.realtime-banner.show{opacity:1;pointer-events:auto;transform:translate(-50%,0)}@keyframes realtime-spin{to{transform:rotate(360deg)}}@media(min-width:700px){.realtime-status{bottom:104px}}
.balance-actions{display:grid;justify-items:end;gap:7px}.balance-actions a:last-child{font-size:10px;color:var(--muted)}.annual-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:15px;padding:5px 3px 18px}.annual-heading h1{margin:5px 0 2px;font-size:27px}.annual-heading>div>p:last-child{margin:0;color:var(--muted);font-size:11px}.annual-heading form{min-width:116px}.annual-heading label{display:block;margin-bottom:5px;color:var(--muted);font-size:9px;font-weight:700}.annual-heading select{width:100%;padding:10px 28px 10px 11px;border:1px solid #cfd8d2;border-radius:12px;background:#fff;color:var(--forest);font-weight:700;outline:none}.annual-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px}.annual-summary>div{padding:14px;background:#fff;border:1px solid var(--line);border-radius:17px}.annual-summary small{display:block;color:var(--muted);font-size:9px}.annual-summary strong{display:block;margin-top:3px;font:800 18px Manrope}.annual-summary .annual-paid{color:#26704f}.annual-summary .annual-due{color:#aa4635}.annual-legend{display:flex;flex-wrap:wrap;gap:7px 12px;margin:17px 2px 11px;color:var(--muted);font-size:8px}.annual-legend span{display:flex;align-items:center;gap:4px}.annual-legend i{width:7px;height:7px;border-radius:50%;background:#aeb8b4}.annual-legend .paid i{background:#46a276}.annual-legend .unpaid i{background:#e0a63d}.annual-legend .overdue i{background:#dc6754}.annual-legend .pending i{background:#668fca}.annual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.annual-month{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:19px}.annual-month:before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:#aeb8b4}.annual-month.status-paid:before{background:#46a276}.annual-month.status-unpaid:before,.annual-month.status-partial:before{background:#e0a63d}.annual-month.status-overdue:before{background:#dc6754}.annual-month.status-pending:before{background:#668fca}.annual-month>summary{list-style:none;min-height:132px;padding:14px 13px 13px 17px;cursor:pointer}.annual-month>summary::-webkit-details-marker{display:none}.annual-month-top{display:flex;justify-content:space-between;align-items:center}.annual-month-top span{font-size:13px;font-weight:700}.annual-month-top i{color:#95a19d;transition:.2s}.annual-month[open] .annual-month-top i{transform:rotate(180deg)}.annual-month summary>b{display:inline-block;margin:8px 0 7px;padding:4px 7px;border-radius:99px;background:#edf0ed;color:#687470;font-size:8px}.annual-month.status-paid summary>b{background:#dcefe6;color:#26704f}.annual-month.status-unpaid summary>b,.annual-month.status-partial summary>b{background:#fff0d6;color:#9b6310}.annual-month.status-overdue summary>b{background:#fae1db;color:#a43f31}.annual-month.status-pending summary>b{background:#dfeafa;color:#326291}.annual-month summary>strong{display:block;font:800 18px Manrope;color:#aa4635}.annual-month.status-paid summary>strong{color:#26704f}.annual-month summary>strong.dash{color:#aab4b0}.annual-month summary>small{display:block;margin-top:2px;color:var(--muted);font-size:8px}.annual-month-detail{grid-column:1/-1;padding:0 12px 12px}.annual-month[open]{grid-column:1/-1}.annual-month-detail article{padding:13px;background:#f6f8f5;border-radius:14px}.annual-month-detail article+article{margin-top:8px}.annual-month-detail article>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:8px}.annual-month-detail h3{margin:0;font:800 12px Manrope}.annual-source{padding:3px 6px;border-radius:99px;background:#dcefe6;color:#26704f;font-size:7px;font-weight:700}.annual-source.legacy{background:#e3e9f5;color:#486b9c}.annual-month-detail dl{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:12px 0 0}.annual-month-detail dl div{min-width:0}.annual-month-detail dt{color:var(--muted);font-size:8px}.annual-month-detail dd{margin:1px 0 0;font:700 10px Manrope,'Noto Sans Thai'}.annual-month-detail article>p{margin:10px 0 0;color:var(--muted);font-size:9px}.annual-month-detail article>a{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:11px;padding:10px;border-radius:10px;background:var(--forest);color:#fff;text-decoration:none;font-size:9px;font-weight:700}.annual-footnote{display:flex;gap:8px;margin-top:14px;padding:12px;border-radius:13px;background:#edf2ee;color:#697672;font-size:9px;line-height:1.55}.annual-footnote i{flex:none;color:var(--forest);font-size:15px}@media(max-width:360px){.annual-heading{align-items:flex-start;flex-direction:column}.annual-heading form{width:100%}}
