*{box-sizing:border-box}body{color:#172a32;background:#f4f6f7;margin:0;font-family:Inter,Microsoft YaHei,sans-serif;font-size:14px}button,input,select{font:inherit}button{cursor:pointer;color:#294049;background:#fff;border:1px solid #d8e0e2;border-radius:8px;padding:10px 14px;font-weight:600}button:disabled{opacity:.45;cursor:not-allowed}main{min-height:100vh;display:flex}aside{color:#d8e5e5;background:#102e37;flex-direction:column;flex-shrink:0;width:220px;padding:30px 20px;display:flex}.brand{align-items:center;gap:11px;margin-bottom:58px;display:flex}.mark{color:#113b3d;background:#a8e2ca;border-radius:11px;place-items:center;width:39px;height:39px;font-size:25px;display:grid}.brand b{color:#fff;font-size:18px}.brand small,.side-bottom small{letter-spacing:1px;opacity:.6;margin-top:4px;font-size:10px;display:block}.side-label{letter-spacing:2px;opacity:.48;margin:0 10px 16px;font-size:11px}.nav{text-align:left;color:#9cb3b8;background:0 0;border:0;margin-bottom:5px;padding:13px 14px}.nav span{margin-right:14px;font-size:19px}.nav.active{color:#fff;background:#28505a}.side-bottom{align-items:center;gap:10px;margin-top:auto;display:flex;overflow:hidden}.side-bottom small{letter-spacing:0;text-overflow:ellipsis;overflow:hidden}.avatar{color:#2c6b5d;background:#dff0e8;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.content{width:100%;max-width:1650px;padding:45px 5%}header{justify-content:space-between;align-items:start;margin-bottom:33px;display:flex}.eyebrow{color:#4d917e;letter-spacing:2px;font-size:11px;font-weight:800}h1{letter-spacing:-1px;margin:10px 0 9px;font-size:30px}h2{margin:0 0 7px;font-size:17px}p{color:#829196;margin:0;line-height:1.6}.live{color:#39846d;background:#e5f3ec;border-radius:30px;padding:9px 14px;font-size:12px}.toolbar{justify-content:space-between;align-items:end;margin-bottom:22px;display:flex}.toolbar label,.fields label{color:#7c8d92;margin-bottom:7px;font-size:12px;font-weight:600;display:block}select,input:not([type=checkbox]){color:#243d43;background:#fff;border:1px solid #dce4e5;border-radius:8px;min-width:0;padding:10px 12px}.toolbar select{min-width:220px;display:block}.primary{color:#fff;background:#176c5b;border-color:#176c5b}.metrics{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px;display:grid}.metrics>div,.panel,.empty{background:#fff;border:1px solid #e7eded;border-radius:13px}.metrics>div{padding:20px 22px}.metrics small,.metrics span{color:#91a0a3;font-size:12px;display:block}.metrics strong{margin:15px 0 9px;font-size:25px;display:block}.metrics em{color:#91a0a3;font-size:12px;font-style:normal;font-weight:400}.metrics .status{color:#328669;margin:19px 0 12px;font-size:18px}.panel{margin-bottom:18px;padding:24px}.panelhead{justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px;display:flex}.panelhead p{font-size:12px}.fields{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:15px;display:grid}.fields input{width:100%;margin-top:8px;display:block}.row{border-top:1px solid #eef2f2;align-items:center;gap:14px;padding:12px 0;display:flex}.row .person{margin-right:auto}.member input:nth-child(2){flex:1}.member input:first-child{width:150px}.check{color:#567077;align-items:center;gap:8px;display:flex}.check input{accent-color:#176c5b}.textbutton{color:#a17777;background:0 0;border:0}.person{align-items:center;gap:10px;min-width:130px;display:flex}.person small{color:#9ba8aa;margin-top:4px;font-size:11px;display:block}.attendance{border-top:1px solid #edf1f1;padding:18px 0}.dates{flex-wrap:wrap;gap:12px;margin:17px 0;display:flex}.dates label{color:#7b8d90;font-size:12px}.dates label span{margin-bottom:6px;display:block}.dates select{min-width:125px;display:block}.actions{flex-wrap:wrap;gap:8px;display:flex}.tablewrap{overflow:auto}table{border-collapse:collapse;text-align:left;white-space:nowrap;width:100%}th{color:#91a0a3;background:#f8faf9;font-size:11px;font-weight:600}th,td{border-bottom:1px solid #edf1f1;padding:15px 12px}td{color:#5d7074}.owed{color:#b76645;font-weight:700}.refund{color:#278669;font-weight:700}.explain{color:#66867b;background:#f2f8f5;border-radius:8px;margin-top:22px;padding:15px;font-size:12px;line-height:1.7}.warning,.notice{color:#906e29;background:#fff5dc;border-radius:8px;margin-bottom:18px;padding:12px 15px}.notice button{float:right;background:0 0;border:0;padding:0}.empty{text-align:center;padding:90px 20px}.empty-icon{color:#88b8a7;margin-bottom:20px;font-size:40px}.empty p{margin-top:8px}.muted{padding:25px 0}@media (max-width:800px){aside{width:68px;padding:24px 10px}.brand{justify-content:center}.brand>div:last-child,.side-label,.nav:not(.active) span+*,.side-bottom div{display:none}.nav{text-align:center;font-size:0}.nav span{margin:0;font-size:20px}.content{padding:28px 18px}.metrics{grid-template-columns:repeat(2,1fr)}.fields{grid-template-columns:1fr}.member{flex-wrap:wrap}.member input:nth-child(2){min-width:160px}.panelhead{flex-direction:column;align-items:start}.live{display:none}h1{font-size:25px}}.login-page{background:linear-gradient(140deg,#eff6f2,#e5eef0);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff;border:1px solid #e2eae7;border-radius:16px;width:min(100%,420px);padding:36px;box-shadow:0 20px 60px #183e3014}.login-brand{margin:0 0 38px}.login-brand b{color:#173b36}.login-brand small{color:#62847a}.login-card h1{margin:0 0 10px}.login-card form{margin-top:28px}.login-card label{color:#617c76;margin-bottom:17px;font-size:12px;font-weight:600;display:block}.login-card label input{width:100%;margin-top:8px;padding:13px;display:block}.login-card form>button{width:100%;padding:13px}.switch{text-align:center;margin:20px 0 0;font-size:13px}.switch button{color:#176c5b}.hint{text-align:center;margin-top:14px;font-size:12px}.logout{color:#c7dcd5;background:0 0;border:0;padding:4px 0;font-size:11px}.member select:first-of-type{flex:1}.attendance-table select{min-width:115px;padding:7px}.attendance-table th:first-child,.attendance-table td:first-child{z-index:1;background:#fff;position:sticky;left:0}.attendance-table th:first-child{background:#f8faf9}.own-row td,.attendance-table .own-row td:first-child{background:#f0f8f3}.attendance-table select:disabled{opacity:1;color:#52696b;background:#f7f9f8}.source-detail{margin:9px 0;font-size:12px}.provision-results{max-height:420px;margin-top:16px;line-height:1.9;overflow:auto}.header-right button{white-space:nowrap}.attendance-table{border:1px solid #b9cbca;border-radius:4px;max-height:72vh}.attendance-table table{width:max-content;min-width:100%;font-size:13px}.attendance-table th,.attendance-table td{text-align:center;border:1px solid #d6e0de;height:38px;padding:5px 7px}.attendance-table thead th{z-index:3;color:#21483f;background:#dfece7;font-size:12px;position:sticky;top:0}.attendance-table thead th:first-child{z-index:5;background:#dfece7}.attendance-table th:first-child,.attendance-table td:first-child{text-align:left;min-width:108px}.attendance-table select{background:0 0;border:0;min-width:116px;max-width:145px;padding:6px 2px}.attendance-table select:disabled{color:#50615e;background:0 0}.attendance-table tfoot th,.attendance-table tfoot td{color:#28594d;background:#f1f7f3;font-weight:600}.attendance-table tfoot th{z-index:2;text-align:left;position:sticky;left:0}.content{min-width:0}.toolbar{flex-wrap:wrap;gap:12px}.attendance-table input.rookie-fee{text-align:right;background:#fff;border:1px solid #9bb8aa;width:100px;min-width:76px;padding:5px 6px}.attendance-table input.rookie-fee:disabled{background:#eff2ef}.deposit-choice{border:0;gap:18px;margin:0;padding:0;display:flex}.deposit-choice label{align-items:center;gap:6px;display:flex}.deposit-choice input{accent-color:#176c5b}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.legacy-deposit{color:#567077}.backfilled{color:#8b7660;margin-top:3px;font-size:10px;font-weight:400;display:block}.attendance-table td:nth-child(2) select{min-width:96px}.recalc-preview{background:#f5faf7;border:1px solid #cfe5d8;border-radius:10px;margin:18px 0 24px;padding:18px}.recalc-preview .tablewrap{max-height:430px;margin-top:14px}.recalc-preview th{background:#e9f4ed;position:sticky;top:0}.recalc-preview p{color:#526b60}.attendance-table tbody td.attendance-present{color:#175c3b;background:#e1f3e8}.attendance-table tbody td.attendance-absent{color:#46555e;background:#edf0f2}.attendance-table tbody td.attendance-cancelled{color:#a12f2b;background:#fde8e7}.attendance-table tbody td.attendance-present select,.attendance-table tbody td.attendance-present select:disabled,.attendance-table tbody td.attendance-absent select,.attendance-table tbody td.attendance-absent select:disabled,.attendance-table tbody td.attendance-cancelled select,.attendance-table tbody td.attendance-cancelled select:disabled{color:inherit;background:0 0;font-weight:600}.attendance-table select option{color:#243d43;background:#fff}.roster-controls{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.roster-controls label{color:#567077;flex-direction:column;gap:7px;font-weight:600;display:flex}.roster-controls select{min-width:210px}.roster-result{margin-top:24px}.roster-actions{color:#39846d;align-items:center;gap:12px;margin-bottom:12px;display:flex}.roster-sheet{background:#fff;border:1px solid #d5e0e2;max-width:720px}.roster-title{text-align:center;color:#1b3741;background:#caedfb;padding:12px;font-size:17px;font-weight:700}.roster-sheet table{table-layout:fixed;width:100%}.roster-sheet td{color:#243d43;white-space:normal;overflow-wrap:anywhere;border:1px solid #e0e7e8;width:25%;padding:10px 12px}.roster-total{text-align:right;color:#243d43;background:#f2f4f4;padding:12px;font-weight:700}.roster-empty{text-align:center;color:#829196;padding:24px}.roster-note{margin-top:12px;font-size:12px}.mobile-logout{display:none}.header-right{gap:8px;display:flex}@media (max-width:800px){.mobile-logout{display:inline-block}}
