:root{--bg:#f7f9fa;--surface:#fff;--fg:#09131a;--muted:#67737c;--border:#e2e5e8;--accent:#4cc157;--success:#3aa85b;--alert:#d74745;--male:#3d98d1;--female:#da76bb;--font-display:-apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--radius:16px;--radius-sm:8px;--gap:16px;--safe-top:max(env(safe-area-inset-top,0px), 20px);--safe-bottom:max(env(safe-area-inset-bottom,0px), 8px)}@supports (color:lab(0% 0 0)){:root{--bg:lab(97.6833% -.330806 -.66179);--surface:lab(100% 0 0);--fg:lab(5.27136% -1.99367 -5.70667);--muted:lab(47.8245% -3.13094 -6.52562);--border:lab(90.7281% -.822723 -1.65201);--accent:lab(69.679% -50.5618 42.4636);--success:lab(61.285% -45.3286 29.93);--alert:lab(51.7988% 56.7776 34.0415);--male:lab(59.3006% -13.5709 -37.6269);--female:lab(63.0826% 46.4749 -18.6763)}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{height:100dvh}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;flex-direction:column;height:100dvh;font-size:16px;line-height:1.4;display:flex;overflow:hidden}a{color:inherit;text-decoration:none}.screen{padding-bottom:calc(56px + max(env(safe-area-inset-bottom), 8px) + 8px);-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;flex-direction:column;flex:1;animation:.25s page-fade-in;display:flex;overflow:hidden auto}.screen-no-nav{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;display:flex;overflow-y:auto}.top-bar{padding-top:var(--safe-top);padding-inline:var(--gap);background:color-mix(in oklch, var(--surface) 95%, transparent);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.logo-group{align-items:center;gap:12px;display:flex}.logo-circle{border-radius:10px;flex-shrink:0;place-items:center;width:36px;height:36px;display:grid;overflow:hidden}.club-name{letter-spacing:-.01em;align-items:center;gap:6px;font-size:18px;font-weight:700;display:flex}.bottom-nav{z-index:100;-webkit-backdrop-filter:blur(20px);padding:8px 0 max(env(safe-area-inset-bottom), 8px);background:#ffffffeb;border-top:1px solid #00000014;justify-content:space-around;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;height:100%;font-size:10px;font-weight:700;text-decoration:none;transition:all .2s;display:flex}.nav-item.active{color:var(--fg)}.nav-item.active .nav-icon-wrapper{background:var(--fg);color:var(--surface)}.nav-icon-wrapper{border-radius:16px;place-items:center;width:54px;height:32px;margin-bottom:1px;transition:all .2s;display:grid}.nav-icon{width:22px;height:22px}.card{background:var(--surface);border-radius:var(--radius);padding:var(--gap);margin-inline:var(--gap);margin-bottom:var(--gap);border:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:12px;transition:transform .2s;display:flex;position:relative}.card:active{transform:scale(.98)}.card-title-group{flex-direction:column;gap:4px;padding-right:48px;display:flex}.card-title{color:var(--fg);margin:0;font-size:18px;font-weight:700;line-height:1.3}.card-subtitle{color:var(--muted);margin:0;font-size:14px}.list-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;transition:opacity .15s;display:flex}.list-item:last-child{border-bottom:none}a.list-item:active,button.list-item:active{opacity:.6}.tap-row{transition:background .15s}.tap-row:active{background:var(--bg)!important}.item-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.item-title{white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.item-side{text-align:right;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.pin-container{justify-content:center;gap:8px;margin-block:20px;display:flex}.pin-digit{border:1px solid var(--border);background:var(--surface);border-radius:12px;place-items:center;width:44px;height:52px;font-size:22px;font-weight:700;transition:all .2s;display:grid}.pin-digit.active{border-color:var(--accent);background:color-mix(in oklch, var(--accent) 5%, transparent);box-shadow:0 0 0 3px color-mix(in oklch, var(--accent) 15%, transparent)}.pin-digit.filled{border-color:var(--fg);background:var(--bg)}.btn{cursor:pointer;font-size:16px;font-weight:600;font-family:var(--font-body);border:none;border-radius:12px;justify-content:center;align-items:center;padding:14px 24px;transition:opacity .2s;display:flex}.btn:active{opacity:.7}.btn-primary{background:var(--accent);color:var(--fg)}.btn-secondary{background:var(--border);color:var(--fg)}.btn-outline{border:1px solid var(--border);color:var(--fg);background:0 0}.btn-destructive{background:var(--alert);color:var(--surface)}.btn-ghost{cursor:pointer;color:var(--muted);font-size:14px;font-weight:600;font-family:var(--font-body);background:0 0;border:none}.pill{border-radius:99px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-male{background:color-mix(in oklch, var(--male) 15%, transparent);color:var(--male)}.badge-female{background:color-mix(in oklch, var(--female) 15%, transparent);color:var(--female)}.status-badge{border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700}.status-paid{background:color-mix(in oklch, var(--success) 15%, transparent);color:var(--success)}.status-unpaid{background:color-mix(in oklch, var(--alert) 15%, transparent);color:var(--alert);animation:2.5s infinite pulse-unpaid}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.vnd:after{content:".000 ₫";opacity:.7;margin-left:2px;font-size:.8em}.stack{gap:var(--gap);flex-direction:column;display:flex}.stack-sm{flex-direction:column;gap:8px;display:flex}.row{align-items:center;gap:8px;display:flex}.row-between{justify-content:space-between;align-items:center;display:flex}.stepper{background:var(--bg);border:1px solid var(--border);border-radius:12px;align-items:center;gap:16px;padding:8px 16px;display:flex}.stepper button{background:var(--surface);width:32px;height:32px;color:var(--fg);cursor:pointer;font-size:20px;font-weight:700;font-family:var(--font-body);border:none;border-radius:8px;place-items:center;display:grid;box-shadow:0 2px 4px #0000000d}.stepper span{text-align:center;min-width:24px;font-size:18px;font-weight:700}.field-group{flex-direction:column;gap:8px;display:flex}.field-group label{color:var(--muted);font-size:14px;font-weight:600}.input-field{border:1px solid var(--border);background:var(--surface);width:100%;font-size:16px;font-family:var(--font-body);color:var(--fg);border-radius:12px;padding:12px 16px}.input-field:focus{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in oklch, var(--accent) 10%, transparent);outline:none}.input-field.error{border-color:var(--alert)}.input-field.error:focus{border-color:var(--alert);box-shadow:0 0 0 4px color-mix(in oklch, var(--alert) 10%, transparent)}.field-error-msg{color:var(--alert);font-size:12px;font-weight:600}input[type=date].input-field,input[type=time].input-field{appearance:none}select.input-field{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:38px}@keyframes ptr-spin{to{transform:rotate(360deg)}}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes page-fade-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-unpaid{0%,to{box-shadow:0 0 0 0 color-mix(in oklch, var(--alert) 45%, transparent)}60%{box-shadow:0 0 0 5px color-mix(in oklch, var(--alert) 0%, transparent)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg, var(--border) 25%, #f0f2f4 50%, var(--border) 75%);background-size:800px 100%;border-radius:8px;animation:1.4s linear infinite shimmer}@supports (color:lab(0% 0 0)){.skeleton{background:linear-gradient(90deg, var(--border) 25%, lab(95.365% -.495404 -.992239) 50%, var(--border) 75%)}}.skeleton-text{border-radius:4px;height:14px}.skeleton-title{border-radius:4px;height:20px}.nav-progress{z-index:9999;pointer-events:none;height:3px;position:fixed;top:0;left:0;right:0}.nav-progress-bar{background:var(--accent);height:100%;box-shadow:0 0 8px color-mix(in oklch, var(--accent) 60%, transparent);transition:width .2s}.fab{bottom:calc(90px + var(--safe-bottom));background:var(--fg);width:56px;height:56px;color:var(--surface);z-index:101;border-radius:28px;place-items:center;text-decoration:none;display:grid;position:fixed;right:20px;box-shadow:0 8px 20px #0000002e}.ev-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);cursor:pointer;margin-inline:var(--gap);margin-bottom:var(--gap);flex-shrink:0;transition:transform .15s;overflow:hidden}.ev-card:active{transform:scale(.98)}.ev-card-head{align-items:flex-start;gap:14px;padding:16px;display:flex}.ev-card-body{flex:1;min-width:0}.ev-name{margin:0 0 4px;font-size:17px;font-weight:700;line-height:1.25}.ev-meta{color:var(--muted);font-size:13px;line-height:1.5}.ev-cal{background:var(--fg);width:52px;height:56px;color:var(--surface);border-radius:14px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:1px;display:flex}.ev-cal-day{font-size:22px;font-weight:800;line-height:1;font-family:var(--font-mono)}.ev-cal-month{text-transform:uppercase;opacity:.55;letter-spacing:.04em;font-size:10px;font-weight:600}.tag-row{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}
