:root{--paper:#fbfcfd;--white:#fff;--ink:#172537;--muted:#687587;--line:#dde3e9;--soft:#f1f4f7;--blue:#245bcc;--blue-soft:#eaf0fc;--warning:#6d5629;--warning-soft:#f8f3e7;font-family:"Inter","Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;font-size:14px;line-height:1.65}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;background:var(--white);border:1px solid var(--line);border-radius:5px;padding:8px 13px;white-space:nowrap;transition:background .15s,border-color .15s}button:hover{background:var(--soft);border-color:#b6c3d2}button:disabled{cursor:wait;opacity:.55}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #9ebaff;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-.04em;line-height:1.35;font-weight:700}h2{font-size:21px;letter-spacing:-.02em}h3{font-size:16px}input,select{background:#fff;border:1px solid #cdd6e1;border-radius:5px;min-height:40px;padding:7px 11px;width:100%;max-width:100%}select{min-width:150px}input[type=checkbox]{width:17px;min-height:17px;height:17px;accent-color:var(--blue)}.primary{background:var(--blue);border-color:var(--blue);color:#fff}.primary:hover{background:#1749b3;border-color:#1749b3}.button{display:inline-flex;padding:10px 18px;border-radius:5px;align-items:center}.button:hover{text-decoration:none}.text-button{border-color:transparent;background:transparent;color:var(--blue)}.muted{color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:.08em;color:var(--muted);font-weight:600;margin-bottom:7px}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.skip-link{position:fixed;top:-60px;left:20px;z-index:20;background:var(--ink);color:white;padding:8px 14px}.skip-link:focus{top:12px}.site-header{height:82px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 4.5vw;background:#fff;gap:25px}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);font-weight:700;line-height:1.5}.brand:hover{text-decoration:none}.brand-mark{font-size:27px;letter-spacing:-.09em;padding-right:13px;border-right:1px solid var(--line);font-weight:800}.brand-sub{display:block;font-size:8px;letter-spacing:.18em;color:var(--muted)}.site-header nav{display:flex;align-items:center;gap:25px;font-size:12px}.site-header nav a{color:var(--muted)}#viewerName{font-weight:600}.site-header nav button{padding:5px 0}.page-heading{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:35px 0 27px}.heading-period{font-size:14px;font-weight:400;letter-spacing:0;margin-left:20px;color:var(--muted)}.heading-actions{display:flex;align-items:center;gap:16px;font-size:12px}main{max-width:1480px;margin:auto;padding:0 4.5vw 25px;outline:none}.filters{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:21px 0 14px;border-top:1px solid var(--ink)}.filters label{font-size:11px;color:var(--muted);display:flex;flex-direction:column;gap:6px;font-weight:600}.filters label input,.filters label select{font-size:13px;font-weight:400;color:var(--ink)}.filters .check-label{flex-direction:row;align-items:center;gap:7px;min-height:40px;margin-left:auto;font-size:12px;font-weight:400}.scope-line{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;color:var(--muted);padding-bottom:18px}.badge{display:inline-block;font-size:11px;line-height:1.55;padding:3px 8px;border-radius:3px;background:var(--soft);color:var(--muted);white-space:nowrap}.badge.blue{background:var(--blue-soft);color:var(--blue)}.badge.pending{color:var(--warning);background:var(--warning-soft)}.view-tabs{display:flex;gap:26px;border-bottom:1px solid var(--line)}.view-tabs button{position:relative;border:0;padding:13px 0 14px;border-radius:0;background:none;color:var(--muted);font-size:13px}.view-tabs button.active{font-weight:700;color:var(--ink)}.view-tabs button.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:3px;background:var(--blue)}.view-tabs .wall-tab{margin-left:auto}.source-status{padding:12px 0;display:flex;justify-content:space-between;gap:15px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}.source-status .stale{color:var(--warning)}.notice{padding:12px 16px;background:var(--warning-soft);color:var(--warning);border-left:3px solid #b79a5f;margin:15px 0;font-size:13px}.initial-loading,.empty{padding:55px 20px;text-align:center;color:var(--muted)}.empty h2,.empty h3{color:var(--ink);margin-bottom:5px}.empty p{max-width:600px;margin:auto}.login-panel{padding:50px 0 80px;border-top:1px solid var(--line)}.login-panel h2{font-size:27px;margin-bottom:10px}.login-panel p{color:var(--muted);margin-bottom:23px}.login-panel .muted{font-size:12px;margin-top:18px}.report-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 0 24px}.person-heading{display:flex;align-items:center;gap:15px}.person-monogram{width:48px;height:48px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:20px;font-weight:700;border-radius:6px;flex-shrink:0}.person-heading h2{font-size:25px;line-height:1.4}.person-heading p,.report-caption{color:var(--muted);font-size:12px}.report-rank{text-align:right;line-height:1.45}.report-rank strong{font-size:26px;font-weight:650;letter-spacing:-.05em}.report-rank .rank-total{font-size:13px;color:var(--muted);margin-left:6px}.report-rank p{font-size:11px;color:var(--muted)}.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.metric{padding:20px 22px;border-right:1px solid var(--line)}.metric:last-child{border-right:0}.metric dt{font-size:12px;color:var(--muted);margin-bottom:5px}.metric dd{margin:0;display:flex;align-items:baseline;gap:6px;font-size:30px;font-weight:650;line-height:1.35;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.metric dd small{font-size:12px;font-weight:400;letter-spacing:0;color:var(--muted)}.metric .metric-sub{margin-top:5px;font-size:11px;color:var(--muted)}.metric-strip dl{margin:0}.metric .blue-number{color:var(--blue)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin:28px 0 13px}.section-heading h3{font-weight:650}.section-heading p{font-size:11px;color:var(--muted)}.section-heading button{font-size:12px;padding:5px 10px}.table-wrap{overflow:auto;max-width:100%;border-bottom:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:12px}th{font-weight:500;color:var(--muted);font-size:11px;text-align:left;background:var(--soft);padding:10px 13px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}td{padding:13px;border-bottom:1px solid var(--line);vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f7f9fc}.comparison-table td{font-size:16px;padding-top:16px;padding-bottom:16px;font-variant-numeric:tabular-nums}.comparison-table td .badge{font-size:12px}.comparison-note{font-size:11px;color:var(--muted);margin-top:8px}.report-columns{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:40px}.highlight-list{padding:0;margin:0;list-style:none}.highlight-list li{border-bottom:1px solid var(--line);padding:10px 0;font-size:13px}.highlight-list li:before{content:"↗";color:var(--blue);display:inline-block;margin-right:10px;font-size:12px}.followups{margin:0;padding:0;list-style:none}.followups li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.followups a{overflow-wrap:anywhere}.small-empty{font-size:12px;color:var(--muted);padding:14px 0}.attendance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;margin:0}.attendance-grid dt{font-size:11px;color:var(--muted)}.attendance-grid dd{margin:4px 0 0;font-size:23px;line-height:1.4;font-weight:600;font-variant-numeric:tabular-nums}.attendance-grid dd small{font-size:11px;font-weight:400;color:var(--muted);margin-left:4px}.attendance-grid .partial{display:block;font-size:10px;font-weight:400;color:var(--warning);margin-top:3px}.attendance-note{font-size:11px;color:var(--muted);margin-top:14px}.work-table{min-width:740px}.work-table td:first-child{white-space:nowrap;color:var(--muted)}.work-table .work-description{min-width:240px;width:45%;max-width:550px}.work-title{font-weight:600;color:var(--ink);overflow-wrap:anywhere}.work-code{font-size:10px;display:block;color:var(--muted);margin-top:3px}.work-table details{margin-top:6px}.work-table summary{cursor:pointer;color:var(--blue);font-size:11px;width:fit-content}.work-note{white-space:pre-wrap;font-size:12px;margin-top:7px;color:var(--muted);max-width:60ch;overflow-wrap:anywhere}.source-link{display:inline-block;margin-top:8px;font-size:11px}.table-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:12px;font-size:11px;color:var(--muted)}.table-pagination div{display:flex;align-items:center;gap:8px}.table-pagination button{font-size:11px;padding:5px 10px}.member-list{display:flex;flex-wrap:wrap;gap:6px 18px;padding:5px 0 8px;font-size:12px}.member-list button{padding:0;border:0;color:var(--blue);background:transparent}.rank-intro{padding:25px 0 5px;display:flex;justify-content:space-between;gap:25px;align-items:center}.rank-intro h2{font-size:23px}.rank-intro p{font-size:12px;color:var(--muted);margin-top:5px}.rank-table td{vertical-align:middle}.rank-position{font-size:18px;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.rank-position.first{color:var(--blue)}.rank-name{font-weight:600;font-size:13px}.rank-table .point-value{font-size:18px;font-weight:600;color:var(--ink)}.progress-track{display:block;width:90px;height:3px;background:var(--line);margin-top:5px;overflow:hidden}.progress-fill{display:block;background:var(--blue);height:100%}.pool-note{font-size:11px;color:var(--muted);margin-top:8px}.rules{border-top:1px solid var(--line);margin-top:34px;padding:18px 0;font-size:12px;color:var(--muted)}.rules summary{cursor:pointer;font-weight:500;width:fit-content}.rules ul{padding-left:18px;margin:12px 0 0;line-height:1.9}.page-footer{border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:8px;padding:25px;width:min(900px,calc(100vw - 28px));max-height:85vh;color:var(--ink);box-shadow:0 20px 80px #17253722}dialog::backdrop{background:#17253766}.dialog-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:20px}.dialog-heading button{border:0;font-size:18px}.dialog-heading h2{font-size:21px}.punches{font-size:11px;line-height:1.8;min-width:160px}.attendance-detail-table{min-width:660px}.attendance-detail-note{color:var(--muted);font-size:11px;margin-bottom:14px}
.wall-mode{overflow:hidden}.wall{position:fixed;inset:0;z-index:30;background:var(--paper);display:flex;flex-direction:column;padding:0 5vw}.wall-toolbar{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:82px;border-bottom:1px solid var(--line);flex-shrink:0}.wall-brand{font-size:25px;letter-spacing:-.07em;color:var(--ink);font-weight:800}.wall-brand span{letter-spacing:0;font-size:13px;font-weight:500;margin-left:17px;color:var(--muted)}.wall-toolbar>div{display:flex;gap:8px;align-items:center}.wall-toolbar button{font-size:11px;padding:6px 10px}.wall-toolbar #wallCounter{font-size:12px;color:var(--muted);margin-right:14px}.wall-content{flex:1;min-height:0;overflow:auto;padding:30px 0;animation:report-in .22s ease-out}.wall-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:25px}.wall-heading h2{font-size:clamp(28px,3vw,48px);letter-spacing:-.05em}.wall-heading p{font-size:14px;color:var(--muted)}.wall-heading .report-rank strong{font-size:42px}.wall .metric-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.wall .metric{padding:20px 26px}.wall .metric dd{font-size:clamp(28px,3.4vw,50px)}.wall-columns{display:grid;grid-template-columns:1.3fr 1fr;gap:5vw}.wall .comparison-table td{font-size:clamp(16px,1.5vw,23px)}.wall .section-heading{margin-top:25px}.wall .highlight-list li{font-size:clamp(12px,1vw,17px);padding:8px 0}.wall .attendance-grid dd{font-size:clamp(22px,2.2vw,34px)}.wall-footer{min-height:45px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:10px;color:var(--muted);flex-shrink:0}.wall .work-note{white-space:normal;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.wall .work-title{font-size:13px}.wall .highlight-list li:before{display:none}@keyframes report-in{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.wall{padding-left:7vw;padding-right:7vw}.wall-content{padding-top:40px}.wall .metric{padding:30px}.wall .section-heading{margin-top:35px}}
@media(max-width:1000px){.heading-period{display:block;margin:7px 0 0}.filters .check-label{margin-left:0}.filters{gap:12px}.site-header nav{gap:15px}.report-columns{gap:25px}.metric{padding:16px}.metric dd{font-size:26px}.wall-columns{gap:25px}.wall-toolbar #wallCounter{margin-right:0}}
@media(max-width:700px){:root{font-size:13px}.site-header{height:68px;padding:0 20px}.brand-mark{font-size:24px}.brand{font-size:12px;gap:9px}.site-header nav{gap:13px;font-size:11px}.site-header nav a:nth-child(2){display:none}#viewerName{display:none}main{padding:0 20px 22px}.page-heading{margin:24px 0 21px;align-items:flex-start}.page-heading h1{font-size:26px}.heading-period{font-size:12px}.heading-actions{flex-direction:column;align-items:flex-end;gap:9px;font-size:10px}.heading-actions button{font-size:11px;padding:6px 9px}.eyebrow{font-size:10px}.filters{display:grid;grid-template-columns:1fr 1fr;gap:12px}.filters label{min-width:0}.filters select{min-width:0}.filters .check-label{font-size:11px}.filters .primary{height:40px;align-self:end}.filters #myReport{text-align:left;width:fit-content}.scope-line{font-size:10px;align-items:flex-start}.view-tabs{gap:20px}.view-tabs button{font-size:12px}.view-tabs .wall-tab{margin-left:auto}.source-status{display:block;font-size:10px}.source-status>span{display:block}.report-heading{padding:22px 0 18px}.person-heading{gap:11px}.person-monogram{width:42px;height:42px;font-size:18px}.person-heading h2{font-size:23px}.person-heading p{font-size:11px}.report-rank strong{font-size:25px}.report-rank .rank-total{font-size:11px}.report-rank p{font-size:10px}.metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:15px 17px}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.metric dd{font-size:28px}.metric dt{font-size:11px}.metric .metric-sub{font-size:10px}.report-columns{grid-template-columns:minmax(0,1fr);gap:0}.section-heading{align-items:center}.section-heading p{font-size:10px;max-width:60%;text-align:right}.section-heading h3{font-size:15px}.comparison-table{min-width:520px}.comparison-table td{font-size:15px}.rank-table{min-width:620px}.rank-intro{align-items:flex-start}.rank-intro h2{font-size:21px}.rank-intro p{font-size:11px}.page-footer{display:block}.page-footer span{display:block}.table-pagination{align-items:flex-start}.wall{padding:0 20px}.wall-toolbar{min-height:100px;flex-wrap:wrap;gap:4px;padding:10px 0}.wall-brand{font-size:22px}.wall-brand span{font-size:11px;margin-left:10px}.wall-toolbar>div{gap:5px;justify-content:space-between;width:100%}.wall-toolbar button{font-size:10px;padding:5px 8px}.wall-toolbar #wallCounter{font-size:10px}.wall-content{padding:22px 0}.wall-heading{margin-bottom:20px}.wall-heading p{font-size:11px}.wall-heading h2{font-size:28px}.wall-heading .report-rank strong{font-size:29px}.wall .metric-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.wall .metric{padding:14px}.wall .metric dd{font-size:28px}.wall-columns{display:block}.wall-footer{font-size:9px;flex-wrap:wrap;gap:0;padding:5px 0}.wall-footer span:last-child{display:none}dialog{padding:20px}.dialog-heading h2{font-size:18px}}
.identity-status{font-size:11px;color:var(--muted);margin:0 0 14px}.attendance-version{font-size:12px;color:var(--blue);background:var(--blue-soft);padding:9px 12px;margin-bottom:13px}.wall>.notice{flex-shrink:0;margin-bottom:0}.metric-sub{overflow-wrap:anywhere}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.site-header,.page-heading .heading-actions,.filters,.view-tabs,.source-status,.rules,.page-footer,.table-pagination,#myReport,button,.wall{display:none!important}body{background:white}main{max-width:none;padding:0}.page-heading{margin:0 0 20px}.heading-period{display:inline}.report-columns{grid-template-columns:1.3fr 1fr}a{color:inherit}details>.work-note,details>.source-link{display:block!important}table{font-size:10px}.table-wrap{overflow:visible}.metric-strip,th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
