:root{color:#183b39;background:#f4f6f3;font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}.shell{width:min(100% - 32px,760px);margin:0 auto;padding:32px 0 72px}.header{display:flex;align-items:flex-start;gap:16px;margin-bottom:28px}.logo{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;border-radius:16px;background:#176556;color:#fff;font-size:1.4rem;font-weight:800}.eyebrow{margin:0 0 4px;color:#617774;font-size:.75rem;font-weight:700;letter-spacing:.08em}h1,h2,p{margin-top:0}h1{margin-bottom:8px;font-size:clamp(1.75rem,7vw,2.5rem);letter-spacing:-.04em}h2{margin-bottom:8px;font-size:1.1rem}p{line-height:1.55}.subtitle,.hint,.section-heading p{margin-bottom:0;color:#617774}.card{margin-top:16px;padding:20px;border:1px solid #dbe5da;border-radius:20px;background:#fff}.person-form label{display:block;margin-bottom:8px;font-weight:700}.form-row,.actions{display:flex;gap:8px}.form-row input,.edit-form input{min-width:0;flex:1;padding:12px;border:1px solid #bdccc6;border-radius:12px;color:inherit;background:#fff}button{min-height:44px;padding:10px 16px;border:0;border-radius:12px;background:#176556;color:#fff;font-weight:700;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}button.secondary{background:#e6efeb;color:#183b39}button.danger{background:#fff0ed;color:#9b3526}.hint{margin:10px 0 0;font-size:.9rem}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.connection{padding:5px 8px;border-radius:999px;background:#e5f3eb;color:#176556;font-size:.78rem;font-weight:700;white-space:nowrap}.participant-list{display:grid;gap:10px;padding:0;margin:18px 0 0;list-style:none}.participant-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid #e1eae4;border-radius:14px}.participant-card strong{overflow-wrap:anywhere}.participant-summary{display:grid;gap:7px;min-width:0}.participant-groups{display:flex;flex-wrap:wrap;gap:6px}.participant-groups span{padding:3px 8px;border-radius:999px;background:#e5f3eb;color:#176556;font-size:.78rem;font-weight:700}.participant-groups small{color:#82928f}.edit-form{display:grid;width:100%;gap:10px}.group-manager{display:grid;gap:10px;margin-top:18px;padding:14px;border:1px solid #e1eae4;border-radius:14px;background:#fbfcfa}.group-manager h3{margin:0;font-size:1rem}.group-picker{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0;padding:0;border:0}.group-picker legend{width:100%;margin-bottom:2px;color:#435d5a;font-size:.82rem;font-weight:700}.group-picker label{display:flex;align-items:center;gap:7px;min-height:44px;color:#435d5a;font-size:.9rem;font-weight:600}.group-picker input{width:18px;height:18px;accent-color:#176556}.participant-group-filter{display:grid;gap:7px;margin-top:14px;color:#435d5a;font-size:.82rem;font-weight:700}.participant-group-filter select{min-height:44px;padding:10px 12px;border:1px solid #bdccc6;border-radius:12px;color:#183b39;background:#fff}.feedback{margin-top:16px}.notice,.error{margin-bottom:0;padding:12px;border-radius:12px;font-weight:700}.notice{background:#e5f3eb;color:#176556}.error{background:#fff0ed;color:#9b3526}.empty{margin:18px 0 0;color:#617774}.debt-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.debt-summary span{display:grid;gap:4px;padding:12px;border-radius:14px;background:#eef3ef}.debt-summary small,.debt-people small{color:#617774}.debt-group{margin-top:18px}.debt-group h3{margin:0;font-size:1rem}.debt-people{display:grid;gap:10px;padding:0;margin:16px 0 0;list-style:none}.debt-people li{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid #e1eae4;border-radius:14px}.debt-people li>span,.debt-people li>div{display:grid;gap:4px}.debt-people li>div{justify-items:end;white-space:nowrap}.debt-actions{display:flex;gap:8px}.debt-actions button{min-width:0}.debt-people .overpaid{color:#9b3526;font-weight:700}.payable-group .debt-people li{border-color:#f0d4cc;background:#fff9f7}.payable-amount{color:#9b3526}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.header-copy{flex:1}.primary-action{align-self:center;white-space:nowrap}.header-actions{display:grid;flex:0 0 auto;gap:8px}.app-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:-12px 0 16px;padding:4px;border-radius:14px;background:#e9efeb}.app-nav button{min-height:42px}.app-nav button.selected{background:#176556;color:#fff}.saved-meal{border-color:#add3c3;background:#f2faf6}.saved-meal ul{display:grid;gap:8px;padding:0;margin:16px 0 0;list-style:none}.saved-meal li{display:flex;justify-content:space-between;gap:12px}.meal-history{display:grid;gap:12px;margin-top:18px}.event-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;padding:16px;border:1px solid #e1eae4;border-radius:16px;background:#fbfcfa}.event-filters label{display:grid;min-width:0;gap:7px;margin:0;color:#435d5a;font-size:.82rem;font-weight:700}.event-search{grid-column:1 / -1}.event-filters input,.event-filters select{width:100%;min-height:44px;padding:10px 12px;border:1px solid #bdccc6;border-radius:12px;outline:none;color:#183b39;background:#fff}.event-filters input::placeholder{color:#82928f}.event-filters input:focus,.event-filters select:focus{border-color:#176556;box-shadow:0 0 0 3px #1765561f}.event-filter-actions{display:flex;justify-content:flex-end;gap:8px;grid-column:1 / -1;padding-top:2px}.event-filter-actions button{min-width:112px}.meal-history-card{padding:16px;border:1px solid #e1eae4;border-radius:16px;background:#fbfcfa}.meal-history-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.meal-history-header time{color:#617774;font-size:.82rem;font-weight:700}.meal-history-header h3{margin:4px 0;font-size:1rem}.meal-history-header p{margin:0;color:#617774;font-size:.9rem}.history-record-tag{display:inline-flex;width:fit-content;margin-bottom:6px;padding:4px 9px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.01em}.history-record-tag.owner-paid{color:#176556;background:#e2f2ea}.history-record-tag.bought-by-others{color:#405b91;background:#e9effb}.purchase-balance-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0}.purchase-balance-details div{display:grid;gap:4px;min-width:0;padding:10px 12px;border:1px solid #e1eae4;border-radius:12px;background:#fff}.purchase-balance-details dt{color:#617774;font-size:.78rem}.purchase-balance-details dd{margin:0;color:#183b39;font-weight:800;overflow-wrap:anywhere}.purchase-settled{background:#f2f4f2}.purchase-settled .purchase-balance-details div{background:#f8f9f8}.purchase-status{margin:12px 0 0;font-size:.88rem;font-weight:800}.purchase-status.open-status{color:#8a4a0d}.purchase-status.settled-status{color:#53706a}.purchase-status.reversed-status{color:#697876}.purchase-note{margin:10px 0 0;color:#617774;font-size:.86rem;overflow-wrap:anywhere}.refresh-status{margin:14px 0 0;color:#435d5a;font-size:.88rem;font-weight:700}.meal-history-header>strong{white-space:nowrap}.meal-history-card ul{display:grid;gap:9px;padding:12px 0 0;margin:12px 0 0;border-top:1px solid #e1eae4;list-style:none}.meal-history-card li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.meal-history-card li span{display:grid;gap:2px;min-width:0}.meal-history-card small{overflow-wrap:anywhere;color:#617774}.meal-history-card small.overpaid{color:#9b3526;font-weight:700}.meal-history-card li.settled{padding:9px 10px;border-radius:12px;background:#eef1ef;color:#697876}.meal-history-card li.settled small{color:#778582}.meal-history-card li.settled .meal-person-amount{color:#697876}.meal-history-card small.settled-status{color:#53706a;font-weight:700}.meal-items-summary{margin-top:12px;border-top:1px solid #e1eae4;padding-top:12px}.meal-items-summary summary{cursor:pointer;color:#176556;font-size:.85rem;font-weight:700}.meal-items-summary ul{padding-top:10px;margin-top:10px}.meal-person-amount{display:grid;justify-items:end;gap:2px;white-space:nowrap}.meal-discount{margin:12px 0 0;color:#176556;font-size:.85rem;font-weight:700;text-align:right}.meal-fee{margin:12px 0 0;color:#617774;font-size:.85rem;font-weight:700;text-align:right}.revision-reason-field{margin-top:16px}.meal-history-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.meal-history-actions button{width:100%}.purchase-history-card .meal-history-actions{grid-template-columns:1fr}.voided-status{margin:14px 0 0;padding:10px 12px;border-radius:12px;color:#697876;background:#eef1ef;font-size:.88rem;font-weight:700;text-align:center}.load-more{width:100%;margin-top:14px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px;padding:4px;border-radius:14px;background:#eef2ed}.segmented button{min-height:40px}.segmented button.selected{background:#176556;color:#fff}html:has(.modal-backdrop),body:has(.modal-backdrop){overflow:hidden}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;align-items:end;padding:12px;overflow:hidden;overscroll-behavior:contain;background:#0c1f1d94}.meal-modal{width:min(100%,760px);max-height:calc(100dvh - 24px);margin:0 auto;overflow-y:auto;scrollbar-gutter:stable;border-radius:24px 24px 16px 16px;background:#f7f9f6;box-shadow:0 24px 80px #00000047}.meal-modal form{padding:0 20px 24px}.modal-header{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid #dbe5da;background:#f7f9f6}.modal-header h2{margin-bottom:0;font-size:1.5rem}.icon-button{width:44px;padding:0;font-size:1.6rem}.meal-fields,.discount-grid{display:grid;gap:12px;margin-top:20px}.meal-fields{grid-template-columns:1fr 2fr}.meal-fields label:nth-child(3){grid-column:1 / -1}.discount-grid{grid-template-columns:1fr 1fr}.discount-grid label:last-child{grid-column:span 1}.allocation-mode-field,.total-field{margin-top:20px}.meal-modal label{display:grid;gap:7px;font-size:.9rem;font-weight:700}.meal-modal input,.meal-modal select,.meal-modal textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #bdccc6;border-radius:12px;color:inherit;background:#fff;font:inherit}.meal-modal textarea{resize:vertical}.rows-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:28px 0 12px}.rows-heading h3{margin:0 0 4px}.rows-heading p{margin:0;color:#617774;font-size:.9rem}.meal-rows{display:grid;gap:12px}.meal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;border:1px solid #dbe5da;border-radius:16px;background:#fff}.row-title{display:flex;grid-column:1 / -1;align-items:center;justify-content:space-between;gap:12px}.row-actions{display:flex;gap:4px}button.text-button{min-height:36px;padding:6px 8px;background:transparent;color:#176556;font-size:.82rem}button.danger-text{color:#9b3526}.row-total{grid-column:1 / -1;margin:0;padding-top:4px;text-align:right;color:#617774;font-size:.9rem}.items-section{margin-top:26px}.item-card{display:grid;gap:12px;margin-top:12px;padding:16px;border:1px solid #dbe5da;border-radius:16px;background:#fff}.item-fields{display:grid;grid-template-columns:2fr 1fr;gap:12px}.consumer-list{display:grid;gap:8px;margin:0;padding:12px;border:1px solid #e1eae4;border-radius:12px}.consumer-list legend{padding:0 4px;color:#435d5a;font-size:.82rem;font-weight:700}.consumer-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.checkbox-label{display:flex!important;grid-template-columns:auto 1fr;align-items:center;gap:8px!important;min-height:40px;font-weight:600!important}.checkbox-label input{width:18px;height:18px;min-height:18px;accent-color:#176556}.consumer-amount{max-width:150px}.notes-field{margin-top:12px}.meal-summary{display:flex;justify-content:space-between;gap:16px;margin-top:16px;padding:16px;border-radius:14px;background:#e5f3eb}.meal-summary span{display:grid;gap:4px}.meal-summary strong{font-size:1.1rem}.modal-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;margin:20px -20px -24px;padding:16px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid #dbe5da;background:#f7f9f6}.collection-modal{width:min(100%,520px);max-height:calc(100dvh - 24px);margin:auto;overflow-y:auto;scrollbar-gutter:stable;border-radius:24px;background:#f7f9f6;box-shadow:0 24px 80px #00000047}.collection-modal form{display:grid;gap:14px;padding:20px}.collection-modal label{display:grid;gap:7px;font-size:.9rem;font-weight:700}.collection-modal input,.collection-modal select,.collection-modal textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #bdccc6;border-radius:12px;color:inherit;background:#fff;font:inherit}.collection-balance{display:flex;justify-content:space-between;margin:0;padding:14px;border-radius:14px;background:#e5f3eb}.collection-history{border-top:1px solid #dbe5da;margin-top:4px;padding:16px 20px 20px}.collection-history h3{margin:0 0 12px}.collection-history ul{display:grid;gap:8px;list-style:none;margin:0;padding:0}.collection-history li{display:grid;gap:10px;padding:12px;border-radius:12px;background:#eef3ef}.collection-history span,.collection-history small{display:block}.history-only,.modal-error{margin:16px 20px 0}.history-reversal{display:grid;gap:8px}.history-reversal label{display:grid;gap:6px;font-size:.82rem;font-weight:700}.history-reversal textarea{width:100%;min-height:70px;padding:10px 12px;border:1px solid #bdccc6;border-radius:12px;color:inherit;background:#fff;font:inherit}.history-reversal>div{display:flex;gap:8px}.history-reversal button{flex:1}.reversed-status{margin-top:4px;color:#9b3526;font-weight:700}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:44px!important;background-color:#fff!important;background-image:linear-gradient(45deg,transparent 50%,#176556 50%),linear-gradient(135deg,#176556 50%,transparent 50%)!important;background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%!important;background-repeat:no-repeat!important;background-size:6px 6px,6px 6px!important}.meal-modal,.collection-modal{scrollbar-width:thin;scrollbar-color:#a9beb7 transparent}.meal-modal::-webkit-scrollbar,.collection-modal::-webkit-scrollbar{width:8px}.meal-modal::-webkit-scrollbar-track,.collection-modal::-webkit-scrollbar-track{background:transparent;margin:14px 0}.meal-modal::-webkit-scrollbar-thumb,.collection-modal::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#a9beb7;background-clip:padding-box}.meal-modal::-webkit-scrollbar-thumb:hover,.collection-modal::-webkit-scrollbar-thumb:hover{background:#7f9d94;background-clip:padding-box}@media(min-width:780px){.modal-backdrop{align-items:center}.meal-modal{border-radius:24px}}@media(max-width:560px){.purchase-balance-details{grid-template-columns:1fr}.header{flex-wrap:wrap}.header-actions{width:100%;margin-left:64px}.header-actions button,.primary-action{width:100%}.debt-summary{grid-template-columns:1fr}.debt-people li{align-items:flex-start;flex-direction:column}.debt-people li>div{width:100%;justify-items:stretch}.debt-people li>div>strong{text-align:right}.debt-actions{width:100%}.debt-actions button{flex:1}.event-filters{grid-template-columns:1fr;padding:14px}.event-search,.event-filter-actions{grid-column:1}.event-filter-actions{display:grid;grid-template-columns:1fr 1fr}.event-filter-actions button{min-width:0;width:100%}.meal-fields,.discount-grid,.meal-row,.item-fields{grid-template-columns:1fr}.meal-fields label:nth-child(3),.row-title,.row-total{grid-column:1}.rows-heading{align-items:flex-start;flex-direction:column}.rows-heading button{width:100%}.meal-summary{flex-direction:column}.consumer-row{align-items:flex-start;flex-direction:column}.consumer-amount{max-width:none}}@media(max-width:440px){.shell{width:min(100% - 24px,760px);padding-top:24px}.card{padding:16px}.form-row{flex-direction:column}.form-row button{width:100%}.participant-card{align-items:flex-start;flex-direction:column}.actions{width:100%}.actions button{flex:1}.header-actions{margin-left:0}.modal-backdrop{padding:0}.meal-modal{max-height:100dvh;min-height:100dvh;border-radius:0}.modal-actions button{flex:1}}.session-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;width:min(100% - 32px,760px);min-height:56px;margin:0 auto;padding:8px 0;color:#617774;font-size:.86rem}.session-bar span{min-width:0;overflow-wrap:anywhere}.session-bar strong{color:#183b39}.session-bar button{flex:0 0 auto}.auth-screen{display:grid;min-height:100vh;min-height:100dvh;place-items:center;padding:max(24px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom));background:#f4f6f3}.auth-card{width:min(100%,440px);padding:28px 24px;border:1px solid #dbe5da;border-radius:24px;background:#fff;box-shadow:0 18px 56px #183b391a}.auth-mark{display:grid;width:52px;height:52px;place-items:center;margin-bottom:20px;border-radius:17px;background:#176556;color:#fff;font-size:1.5rem;font-weight:800}.auth-card h1{margin-bottom:10px;font-size:clamp(1.75rem,7vw,2.25rem)}.auth-copy{margin:0 0 20px;color:#617774;line-height:1.55}.auth-primary{width:100%;min-height:48px}.auth-error{margin:0 0 14px;padding:10px 12px;border-radius:12px;background:#fff0ed;color:#9b3526}.account-choices{display:grid;gap:8px;margin:18px 0}.account-choices p{margin:0 0 4px;font-size:.9rem;font-weight:700}.account-choices button{overflow-wrap:anywhere}.auth-missing-fields{display:grid;gap:8px;margin:-8px 0 20px;padding-left:20px;color:#435d5a}.auth-missing-fields code{overflow-wrap:anywhere}@media(max-width:440px){.session-bar{width:min(100% - 24px,760px);align-items:flex-start;flex-direction:column;padding:12px 0}.session-bar button{width:100%}.auth-card{padding:24px 20px;border-radius:20px}}.app-layout{display:grid;min-height:100vh;min-height:100dvh;grid-template-columns:240px minmax(0,1fr)}.app-sidebar{position:sticky;top:0;display:flex;height:100vh;height:100dvh;flex-direction:column;gap:30px;padding:24px 14px;border-right:1px solid #dbe5da;background:#fff}.sidebar-brand{display:flex;align-items:center;gap:11px;padding:0 8px}.sidebar-brand>span:last-child{display:grid;gap:2px;min-width:0}.sidebar-brand strong{overflow-wrap:anywhere}.sidebar-brand small{color:#617774}.module-nav{display:grid;gap:6px}.module-nav button{display:flex;width:100%;align-items:center;gap:11px;min-height:48px;padding:8px 11px;border:1px solid transparent;background:transparent;color:#435d5a;text-align:left}.module-nav button:hover{background:#f3f6f3}.module-nav button.selected{background:#e5f3eb;color:#176556}.module-nav button>span{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border-radius:9px;background:#eef3ef;color:#176556;font-size:.82rem;font-weight:800}.module-nav button.selected>span{background:#176556;color:#fff}.shell.app-main{width:min(100% - 48px,1080px);margin:0 auto;padding:32px 0 80px}.mobile-menu{display:none;width:44px;min-width:44px;height:44px;padding:0;place-items:center;background:#e6efeb;color:#183b39;font-size:1.15rem}.sidebar-backdrop{display:none}.badminton-module{display:grid;gap:16px}.badminton-summary{margin-top:14px}.badminton-debt-list{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}.badminton-debt-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #e1eae4;border-radius:12px}.badminton-debt-list li span{display:grid;min-width:0;gap:4px}.badminton-debt-list small{color:#617774}.badminton-debt-list strong:last-child{white-space:nowrap}.badminton-history-heading{align-items:center}.badminton-history-heading>button{flex:0 0 auto}.badminton-filters{display:grid;grid-template-columns:minmax(180px,2fr) minmax(140px,1fr) minmax(150px,1fr);gap:12px;margin-top:16px;padding:16px;border:1px solid #e1eae4;border-radius:16px;background:#fbfcfa}.badminton-filters label{display:grid;min-width:0;gap:7px;color:#435d5a;font-size:.82rem;font-weight:700}.badminton-filters input,.badminton-filters select{width:100%;min-height:44px;padding:10px 12px;border:1px solid #bdccc6;border-radius:12px;outline:none;background:#fff;color:#183b39}.badminton-filters input:focus,.badminton-filters select:focus{border-color:#176556;box-shadow:0 0 0 3px #1765561f}.badminton-filters .event-filter-actions{grid-column:1 / -1}.badminton-session-list{display:grid;gap:12px;margin-top:16px}.badminton-session-card{padding:16px;border:1px solid #dbe5da;border-radius:16px;background:#fff}.badminton-session-card.is-settled{border-color:#dfe8e2;background:#f8faf8}.badminton-session-card.is-voided{border-color:#e2e5e3;background:#f2f4f2;color:#677572}.badminton-session-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.badminton-session-header time{color:#617774;font-size:.82rem;font-weight:700}.badminton-session-header h3{margin:4px 0;font-size:1rem}.badminton-session-header p{margin:0;color:#617774;overflow-wrap:anywhere}.badminton-session-total{display:grid;flex:0 0 auto;gap:4px;justify-items:end}.badminton-session-total small{color:#617774}.badminton-session-total strong{white-space:nowrap}.badminton-cost-breakdown{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.badminton-cost-breakdown span{padding:5px 8px;border-radius:999px;background:#eef3ef;color:#435d5a;font-size:.78rem;font-weight:600}.badminton-session-people{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}.badminton-session-people>li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 14px;padding:12px;border:1px solid #e1eae4;border-radius:12px}.badminton-person-main{display:grid;min-width:0;gap:4px}.badminton-person-main strong{overflow-wrap:anywhere}.badminton-person-main small{color:#617774}.badminton-owner-tag{margin-left:7px;padding:3px 7px;border-radius:999px;background:#e5f3eb;color:#176556;font-size:.7rem}.badminton-person-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end}.badminton-person-actions>button{min-height:40px;padding:8px 12px}.badminton-outstanding{color:#9b3526;white-space:nowrap}.badminton-session-people>li.settled-share{background:#f4f7f4;color:#667471}.badminton-session-people>li.owner-share{background:#fbfcfa}.badminton-payment-history{grid-column:1 / -1;border-top:1px solid #e1eae4;padding-top:8px}.badminton-payment-history summary{cursor:pointer;color:#176556;font-size:.82rem;font-weight:700}.badminton-payment-history ul{display:grid;gap:7px;margin:8px 0 0;padding:0;list-style:none}.badminton-payment-history li{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#435d5a;font-size:.84rem}.badminton-payment-history li>span{min-width:0;overflow-wrap:anywhere}.badminton-payment-history li small{display:block;color:#9b3526}.badminton-payment-history li.reversed-collection{color:#7a8582}.badminton-session-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #e1eae4}.badminton-session-actions button{min-height:40px}.badminton-form-grid,.badminton-costs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.badminton-costs{grid-template-columns:repeat(3,minmax(0,1fr));padding:12px;border:1px solid #dbe5da;border-radius:14px}.badminton-costs legend,.badminton-attendees legend,.allocation-choice legend{padding:0 4px;color:#435d5a;font-size:.9rem;font-weight:700}.badminton-total{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding:12px 14px;border-radius:12px;background:#e5f3eb}.badminton-total strong{font-size:1.1rem}.badminton-attendees{display:grid;gap:5px;margin:20px 0 0;padding:12px;border:1px solid #dbe5da;border-radius:14px}.badminton-attendee{display:flex!important;align-items:center;gap:10px!important;min-height:48px;padding:6px 2px;font-weight:500!important}.badminton-attendee>input,.allocation-choice input{width:20px!important;height:20px;min-height:20px!important;flex:0 0 auto;accent-color:#176556}.badminton-attendee>span{display:grid;min-width:0;gap:3px}.badminton-attendee small{color:#617774;font-weight:400}.badminton-group-action{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;color:#617774;font-size:.82rem}.badminton-group-action button{min-height:40px;padding:8px 12px}.allocation-choice{display:flex;flex-wrap:wrap;gap:8px 16px;margin:18px 0 0;padding:12px;border:1px solid #dbe5da;border-radius:14px}.allocation-choice label{display:flex;align-items:center;gap:8px;min-height:44px}.badminton-share-preview{display:grid;gap:8px;margin-top:18px;padding:14px;border:1px solid #dbe5da;border-radius:14px;background:#fff}.badminton-share-preview h3{margin:0;font-size:.96rem}.badminton-share-row{display:flex!important;align-items:center;justify-content:space-between;gap:12px!important;padding:8px 0;border-top:1px solid #edf1ed}.badminton-share-row span{min-width:0;overflow-wrap:anywhere}.badminton-share-row small{color:#617774;font-weight:400}.badminton-share-row input{max-width:190px}.allocation-valid,.allocation-invalid{margin:4px 0 0;font-size:.84rem;font-weight:700;text-align:right}.allocation-valid{color:#176556}.allocation-invalid{color:#9b3526}.badminton-collection-balance{display:flex;justify-content:space-between;gap:10px;padding:12px;border-radius:12px;background:#e5f3eb}.small-modal{width:min(100%,520px)}@media(max-width:900px){.app-layout{display:block}.app-sidebar{position:fixed;z-index:61;top:0;bottom:0;left:0;width:min(84vw,300px);height:100vh;height:100dvh;transform:translate(-105%);transition:transform .2s ease;box-shadow:12px 0 40px #183b3924}.app-sidebar.is-open{transform:translate(0)}.sidebar-backdrop{position:fixed;z-index:60;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;border-radius:0;background:#0c1f1d73}.shell.app-main{width:min(100% - 24px,760px);padding-top:24px}.mobile-menu{display:grid}.header{align-items:flex-start;gap:10px}.header-logo{width:44px;height:44px;flex-basis:44px}}@media(max-width:560px){.badminton-filters{grid-template-columns:1fr;padding:14px}.badminton-filters .event-filter-actions{grid-column:1;display:grid;grid-template-columns:1fr 1fr}.badminton-form-grid,.badminton-costs{grid-template-columns:1fr}.badminton-history-heading{align-items:flex-start;flex-direction:column}.badminton-history-heading>button{width:100%}.badminton-session-header{flex-direction:column}.badminton-session-total{justify-items:start}.badminton-session-people>li{grid-template-columns:1fr}.badminton-person-actions{justify-content:space-between}.badminton-person-actions>button{flex:1}.badminton-payment-history{grid-column:1}.badminton-session-actions{display:grid;grid-template-columns:1fr 1fr}.badminton-group-action{align-items:flex-start;flex-direction:column}.badminton-group-action button{width:100%}.allocation-choice{display:grid}.badminton-share-row input{max-width:140px}}.credit-card-module{display:grid;gap:16px}.credit-card-overview .section-heading{align-items:center}.credit-card-summary{margin-top:14px}.credit-card-picker-heading{align-items:center}.credit-archived-toggle{display:flex;align-items:center;gap:8px;min-height:44px;color:#435d5a;font-size:.84rem;font-weight:700}.credit-archived-toggle input{width:18px;height:18px;accent-color:#176556}.credit-card-picker{display:grid;gap:7px;margin-top:18px;color:#435d5a;font-size:.84rem;font-weight:700}.credit-card-picker select{width:100%;min-height:48px;padding:10px 40px 10px 14px;border:1px solid #bdccc6;border-radius:13px;color:#183b39;background:#fff}.credit-empty-state{display:grid;justify-items:start;gap:8px;margin-top:18px;padding:18px;border:1px dashed #bdccc6;border-radius:16px;background:#fbfcfa}.credit-empty-state p{margin:0;color:#617774}.credit-selected-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:16px;border-radius:16px;background:linear-gradient(125deg,#e6f3ed,#f3f7f3)}.credit-selected-card>div:first-child{display:flex;min-width:0;align-items:center;gap:12px}.credit-selected-card>div:first-child>div{display:grid;min-width:0;gap:4px}.credit-selected-card strong{overflow-wrap:anywhere}.credit-selected-card small,.credit-limit-note{color:#617774}.credit-card-chip{display:grid;width:44px;height:44px;flex:0 0 44px;place-items:center;border-radius:13px;background:#176556;color:#fff;font-size:1.2rem}.credit-selected-balance{display:grid;flex:0 0 auto;justify-items:end;gap:3px}.credit-selected-balance small{font-size:.78rem}.credit-selected-balance strong{white-space:nowrap}.credit-limit-note{margin:8px 0 0;font-size:.82rem;text-align:right}.credit-card-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.credit-card-actions button{min-width:0;padding-inline:10px}.credit-archive-action{grid-column:1 / -1;justify-self:end}.credit-import-note{margin:14px 0 0;padding:11px 12px;border-radius:12px;background:#f0f4f1;color:#526a64;font-size:.83rem}.credit-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:18px;padding:4px;border-radius:14px;background:#eef2ed}.credit-tabs button{min-width:0;min-height:44px;padding:8px 6px;background:transparent;color:#435d5a;font-size:.86rem}.credit-tabs button.selected{background:#176556;color:#fff}.credit-tab-panel{min-width:0;margin-top:18px}.credit-list-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.credit-list-heading h3{margin:0 0 4px;font-size:1rem}.credit-list-heading p{margin:0;color:#617774;font-size:.84rem}.credit-ledger-list,.credit-statement-list,.credit-plan-list{display:grid;gap:10px;margin:14px 0 0;padding:0;list-style:none}.credit-ledger-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:13px;border:1px solid #e1eae4;border-radius:14px;background:#fbfcfa}.credit-ledger-row.is-reversed{color:#75817d;background:#f2f4f2}.credit-ledger-main{display:grid;min-width:0;gap:4px}.credit-ledger-main time,.credit-ledger-main small{color:#617774;font-size:.8rem}.credit-ledger-main>strong{overflow-wrap:anywhere}.credit-kind-tag{width:fit-content;padding:3px 8px;border-radius:999px;background:#e5f3eb;color:#176556;font-size:.74rem;font-weight:700}.credit-reversal-note{color:#9b3526!important}.credit-ledger-actions{display:grid;flex:0 0 auto;justify-items:end;gap:4px}.credit-ledger-actions>strong{white-space:nowrap}.credit-amount{color:#176556}.text-button{min-height:36px;padding:6px 8px;background:transparent;color:#176556;font-size:.82rem}.text-button:hover{background:#eef3ef}.credit-statement-card,.credit-plan-card{min-width:0;padding:15px;border:1px solid #dbe5da;border-radius:16px;background:#fff}.credit-statement-card.is-settled{background:#f6f8f6}.credit-statement-header,.credit-plan-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.credit-statement-header h4,.credit-plan-card h4{margin:8px 0 4px;font-size:.98rem;overflow-wrap:anywhere}.credit-statement-header p,.credit-plan-card header p{margin:0;color:#617774;font-size:.82rem}.credit-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.72rem;font-weight:800}.credit-status.is-paid{background:#e9eeea;color:#64736e}.credit-status.is-open{background:#fff1dc;color:#87520e}.credit-statement-amount{display:grid;flex:0 0 auto;justify-items:end;gap:4px}.credit-statement-amount small{color:#617774;font-size:.78rem}.credit-statement-amount strong{white-space:nowrap}.credit-statement-breakdown,.credit-plan-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0 0}.credit-statement-breakdown div,.credit-plan-summary span{display:grid;min-width:0;gap:4px;padding:10px;border-radius:11px;background:#f1f5f1}.credit-statement-breakdown dt,.credit-plan-summary span{color:#617774;font-size:.78rem}.credit-statement-breakdown dd,.credit-plan-summary strong{margin:0;color:#183b39;font-size:.87rem;font-weight:800;overflow-wrap:anywhere}.credit-reconciliation-warning{margin:12px 0 0;padding:10px;border-radius:11px;background:#fff1dc;color:#87520e;font-size:.82rem;font-weight:700}.credit-statement-details,.credit-payment-history,.credit-installment-schedule{margin-top:13px;border-top:1px solid #e1eae4;padding-top:11px}.credit-statement-details summary,.credit-payment-history summary,.credit-installment-schedule summary{min-height:36px;color:#176556;font-size:.84rem;font-weight:700;cursor:pointer}.credit-statement-details .credit-ledger-list{margin-top:6px}.credit-pay-button{width:100%;margin-top:12px}.credit-payment-history ul,.credit-installment-schedule ol{display:grid;gap:8px;margin:8px 0 0;padding:0;list-style:none}.credit-payment-history li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-radius:11px;background:#f1f5f1}.credit-payment-history li>span{display:grid;min-width:0;gap:3px}.credit-payment-history li small{color:#617774;overflow-wrap:anywhere}.credit-payment-history li.is-reversed{color:#75817d}.credit-payment-history li.is-reversed small{color:#9b3526}.credit-plan-card>header>strong{flex:0 0 auto;white-space:nowrap}.credit-plan-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.credit-plan-summary span{gap:5px}.credit-installment-period{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;border:1px solid #e1eae4;border-radius:12px}.credit-installment-period>span:first-child{display:grid;min-width:0;gap:4px}.credit-installment-period small{color:#617774;font-size:.78rem;overflow-wrap:anywhere}.credit-installment-period.is-settled{background:#f0f3f0;color:#65736f}.credit-installment-period.is-reversed{background:#f5f4f3;color:#77817e}.credit-period-side{display:grid;justify-items:end;gap:2px}.credit-card-backdrop{z-index:80}.credit-card-dialog{width:min(100%,560px)}.credit-card-form{display:grid;gap:13px;padding:18px 20px calc(18px + env(safe-area-inset-bottom))}.credit-card-form label{display:grid;gap:7px;color:#435d5a;font-size:.86rem;font-weight:700}.credit-card-form input,.credit-card-form select{width:100%;min-width:0;min-height:46px;padding:10px 13px;border:1px solid #bdccc6;border-radius:12px;outline:none;color:#183b39;background:#fff;font:inherit}.credit-card-form input:focus,.credit-card-form select:focus{border-color:#176556;box-shadow:0 0 0 3px #1765561f}.credit-card-form>small,.credit-form-hint{margin:-6px 0 0;color:#617774;font-size:.81rem;line-height:1.45}.credit-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.credit-payment-balance{display:flex;justify-content:space-between;gap:10px;padding:12px;border-radius:12px;background:#e5f3eb}.credit-card-form .modal-actions{margin:4px -20px calc(-18px - env(safe-area-inset-bottom));padding:13px 20px calc(13px + env(safe-area-inset-bottom))}.credit-dialog-error{margin:12px 20px 0}.credit-ledger-row.is-reversed .credit-reversed-amount{text-decoration:line-through}.credit-detail-loading{padding:10px 0}.credit-detail-loading p{margin:0;color:#617774;font-size:.84rem}.credit-card-dialog{scrollbar-width:thin;scrollbar-color:#a9beb7 transparent}.credit-card-dialog::-webkit-scrollbar{width:8px}.credit-card-dialog::-webkit-scrollbar-track{background:transparent;margin:14px 0}.credit-card-dialog::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#a9beb7;background-clip:padding-box}@media(min-width:780px){.credit-card-form{grid-template-columns:repeat(2,minmax(0,1fr))}.credit-card-form>label,.credit-card-form>p,.credit-card-form>small,.credit-card-form .modal-actions,.credit-card-form .credit-form-grid{grid-column:1 / -1}}@media(max-width:560px){.credit-card-overview .section-heading,.credit-card-picker-heading{align-items:flex-start;flex-direction:column}.credit-card-overview .section-heading>button{width:100%}.credit-card-summary{grid-template-columns:1fr}.credit-selected-card{align-items:flex-start;flex-direction:column}.credit-selected-balance{justify-items:start}.credit-card-actions{grid-template-columns:1fr 1fr}.credit-archive-action{grid-column:1 / -1;justify-self:stretch}.credit-tabs button{font-size:.76rem}.credit-statement-header,.credit-plan-card>header{flex-direction:column}.credit-statement-amount{justify-items:start}.credit-plan-summary,.credit-form-grid{grid-template-columns:1fr}.credit-card-form{padding-inline:16px}.credit-card-form .modal-actions{margin-inline:-16px;padding-inline:16px}.credit-dialog-error{margin-inline:16px}}
