:root{--ink:#182b49;--muted:#5e6d82;--primary:#244c86;--page:#f4f6fa;--surface:#fff;--line:#dce3ed;--soft:#edf1f6;--gold:#976b24;--sidebar-width:224px}body,html{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,PingFang TC,Noto Sans TC,Microsoft JhengHei,sans-serif;background:var(--page);color:var(--ink);font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #7b9fd4;outline-offset:3px}a,button{touch-action:manipulation}.week-pills{scrollbar-width:none}.week-pills::-webkit-scrollbar{display:none}.login-page{box-sizing:border-box;min-height:100dvh;display:grid;place-items:center;padding:40px;background:#edf1f6}.login-layout{display:grid;grid-template-columns:1fr 1fr;width:min(1040px,100%);min-height:660px;border:1px solid #dce3ed;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 20px 70px #182b4910}.login-brand{box-sizing:border-box;padding:42px;background:#182f51;color:#fff;display:flex;flex-direction:column;justify-content:space-between}.login-brandmark{display:flex;gap:12px;align-items:center;color:#fff;text-decoration:none;font-size:22px;font-weight:700;letter-spacing:.04em}.login-brandmark img{object-fit:contain}.login-brandmark small{display:block;color:#bdcbe0;font-size:13px;font-weight:500;letter-spacing:.1em;margin-top:2px}.login-eyebrow{font-size:13px;color:#d9bf84;letter-spacing:.12em}.login-message h1{font-size:clamp(32px,3.6vw,46px);letter-spacing:.04em;line-height:1.5;margin:20px 0;font-weight:650}.login-message p{color:#bfcde0;font-size:16px;line-height:1.9}.login-brandfoot{padding-top:22px;border-top:1px solid #ffffff24;display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;font-size:12px;color:#c3cfe0}.login-brandfoot span:last-child{color:#aebdd2}.login-form-panel{box-sizing:border-box;padding:46px 52px 28px;display:flex;flex-direction:column;justify-content:center}.login-logo{width:168px;height:auto;align-self:flex-start;margin:0 0 28px}.login-form-heading h2{margin:0 0 7px;font-size:27px;letter-spacing:-.02em}.login-form-heading p{margin:0 0 28px;font-size:14px;color:var(--muted)}.login-form{display:flex;flex-direction:column}.login-form>label{font-size:14px;font-weight:650;margin:0 0 8px}.login-form>label span{font-size:12px;font-weight:400;color:var(--muted);margin-left:10px}.login-form>input{box-sizing:border-box;width:100%;height:48px;border:1px solid #cdd7e4;border-radius:8px;background:#fff;padding:12px 14px;font-size:16px;margin-bottom:20px;color:var(--ink)}.login-form>input::placeholder{color:#8794a7}.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-2px 0 22px}.login-remember{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--muted)}.login-remember input{width:17px;height:17px;accent-color:var(--primary);margin:0}.text-button{border:0;padding:4px 0;cursor:pointer;background:transparent;font-size:14px;color:var(--primary)}.login-submit{display:flex;justify-content:center;position:relative;align-items:center;border:0;border-radius:8px;background:var(--primary);color:#fff;font-size:16px;font-weight:650;height:48px;cursor:pointer}.login-submit span{position:absolute;right:18px;font-size:22px;font-weight:400}.login-submit:hover{background:#193b6d}.login-submit:disabled{opacity:.6}.login-footer{font-size:12px;color:var(--muted);border-top:1px solid var(--soft);margin-top:32px;padding-top:18px;display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between}.login-error,.login-help{font-size:14px;padding:12px;border-radius:8px;margin:0 0 18px;line-height:1.65}.login-error{color:#af3544;background:#fff0f1}.login-help{color:var(--primary);background:#edf2fa}@media screen{.workspace{box-sizing:border-box;min-height:100dvh;padding-left:var(--sidebar-width);background:var(--page)!important}.workspace-nav{box-sizing:border-box;position:fixed;z-index:45;inset:0 auto 0 0;width:var(--sidebar-width);background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:28px 14px 20px;font-family:inherit;text-align:left;color:var(--ink)}.workspace-brand{text-decoration:none;display:flex;gap:11px;align-items:center;color:var(--ink);padding:0 12px 25px;flex:none;font-size:18px;font-weight:750;letter-spacing:.035em}.workspace-brand img{object-fit:contain;flex:none}.workspace-brand small{display:block;font-size:12px;letter-spacing:.08em;color:var(--muted);font-weight:500;margin-top:3px}.workspace-menu{flex:1 1;overflow-y:auto;scrollbar-width:thin}.nav-group+.nav-group{margin-top:22px}.nav-group-label{font-size:12px;color:#7a8699;padding:0 14px 8px;letter-spacing:.08em;font-weight:500}.nav-link{display:flex;gap:12px;align-items:center;box-sizing:border-box;min-height:44px;padding:10px 13px;margin-bottom:4px;border-radius:8px;color:#5e6d82;text-decoration:none;font-size:14px;font-weight:550;transition:background .15s,color .15s}.nav-link svg{flex:none}.nav-link:hover{background:#f0f4fa;color:var(--primary)}.nav-link.active{background:#eaf0f9;color:#244c86;font-weight:750}.nav-link i{width:5px;height:5px;background:var(--primary);border-radius:50%;margin-left:auto}.workspace-nav-footer{flex:none;padding:20px 14px 0;margin-top:18px;border-top:1px solid var(--soft);text-align:center}.brand-rule{width:24px;height:3px;background:#bb934d;display:block;margin:0 auto 11px}.workspace-nav-footer strong{display:block;font-size:12px;font-weight:600;color:#5e6d82}.workspace-nav-footer small{display:block;font-size:12px;color:#7b8797;margin-top:8px;line-height:1.6}.nav-toggle{display:none}.page-header{position:-webkit-sticky;position:sticky;top:0;z-index:30;background:#fff!important;border-bottom:1px solid var(--line);-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.page-header>div{box-sizing:border-box;max-width:none!important;margin:0!important;min-height:80px;padding:18px 28px!important}.page-header>div>div:first-child:not(.page-heading){font-size:22px!important;font-weight:750!important}.roster-header-row{display:flex;align-items:center;gap:18px;justify-content:space-between}.page-eyebrow{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}.page-heading h1{font-size:24px;line-height:1.25;margin:0;letter-spacing:-.025em}.page-actions{display:flex;align-items:center;gap:10px}.user-badge{font-size:13px;color:var(--muted);background:#f3f5f9;border:1px solid var(--soft);padding:7px 12px;border-radius:6px}.workspace>.app-main,.workspace>main{box-sizing:border-box;padding:24px 28px 40px!important}.workspace .app-card{border-radius:12px!important;padding:22px!important;box-shadow:0 2px 6px #182b4904!important;margin-bottom:20px!important}.workspace .roster-toolbar{justify-content:flex-start!important;padding-bottom:12px;border-bottom:1px solid var(--soft)}.workspace .roster-store-tabs{gap:6px!important;margin-bottom:18px!important}.workspace button:not(.sched-cell):not(.nav-toggle),.workspace select{border-radius:7px}.workspace button:not(:disabled):hover{filter:brightness(.97)}.workspace button:disabled{opacity:.55}.workspace table{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.workspace :is(input,textarea,select){accent-color:var(--primary)}.workspace input:not([type=checkbox]):not([type=radio]):not([type=color]),.workspace select{min-height:36px}.workspace table input:not([type=checkbox]):not([type=radio]){min-height:30px}.workspace .metric-card{box-shadow:0 2px 5px #182b4903;padding:17px 18px!important;border-radius:10px!important}.workspace .metric-card .kv{margin:9px 0 6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.025em}.workspace-tool>.tool-content{box-sizing:border-box;padding-top:36px!important}.workspace-tool>.tool-content>h1{font-size:28px!important;margin-top:0}.workspace-tool>.tool-content>div:has(>h1){padding-bottom:18px;border-bottom:1px solid var(--line)}.join-page{padding-top:36px!important}.join-page>div{max-width:640px!important}.workspace-salary>main{min-width:0}.workspace-salary #salary-print{zoom:1!important}.workspace .sched-cell:focus-visible{outline-offset:-2px}.workspace-roster .roster-grid{border-radius:8px}}@media screen and (min-width:1500px){:root{--sidebar-width:240px}}@media screen and (max-height:760px) and (min-width:901px){.workspace-nav{padding-top:20px}.nav-group+.nav-group{margin-top:12px}.workspace-nav-footer{padding-top:12px;margin-top:10px}.workspace-brand{padding-bottom:18px}}@media screen and (max-width:1100px) and (min-width:901px){:root{--sidebar-width:200px}.workspace-brand{padding-left:5px;font-size:16px}.page-header>div{padding:16px 20px!important}.workspace>.app-main,.workspace>main{padding:20px!important}}@media screen and (max-width:900px){.workspace{padding-left:0}.workspace-nav{position:relative;inset:auto;width:100%;padding:10px 16px;border-right:0;border-bottom:1px solid var(--soft);flex-direction:row;align-items:center;justify-content:space-between;min-height:62px}.workspace-brand{padding:0;gap:8px;font-size:16px}.workspace-brand img{height:30px;width:auto}.workspace-brand small{display:none}.nav-toggle{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:6px;padding:7px 11px;font-size:13px;font-weight:550;color:var(--ink);background:#fff;cursor:pointer}.nav-toggle span{font-size:18px;line-height:1}.workspace-menu{display:none;position:absolute;z-index:50;top:100%;left:0;right:0;padding:18px;background:#fff;box-shadow:0 15px 22px #182b4918;border-bottom:1px solid var(--line);max-height:calc(100dvh - 90px);overflow-y:auto}.is-open .workspace-menu{display:block}.nav-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:4px;gap:4px}.nav-group-label{grid-column:1/-1;padding:0 8px 4px}.nav-group+.nav-group{margin-top:14px}.nav-link{margin:0;padding:10px 8px;font-size:14px;gap:8px}.nav-link i,.workspace-nav-footer{display:none}.page-header>div{min-height:64px;padding:14px 18px!important;flex-wrap:wrap}.page-header>div>div:first-child:not(.page-heading){font-size:20px!important}.page-heading h1{font-size:22px}.page-eyebrow{display:none}.workspace>.app-main,.workspace>main{padding:18px 16px 32px!important}.workspace .app-card{padding:16px!important}.workspace-tool>.tool-content{padding-top:24px!important}.workspace .metric-card{padding:13px!important}.login-page{padding:24px}.login-layout{grid-template-columns:.85fr 1fr;min-height:610px}.login-brand{padding:30px}.login-form-panel{padding:36px 30px 26px}}@media screen and (max-width:600px){.login-page{display:block;padding:0;background:#fff}.login-layout{display:block;min-height:100dvh;border:0;border-radius:0;box-shadow:none}.login-brand{padding:24px;min-height:auto}.login-brandmark{font-size:18px}.login-brandmark small{font-size:12px}.login-brandmark img{height:38px;width:auto}.login-message{margin-top:22px}.login-eyebrow{font-size:12px}.login-message h1{font-size:27px;line-height:1.4;margin:8px 0 0}.login-brandfoot,.login-message h1 br,.login-message p{display:none}.login-form-panel{padding:30px 24px 24px}.login-logo{display:none}.login-form-heading h2{font-size:24px}.login-form-heading p{margin-bottom:24px}.login-footer{margin-top:28px}.page-header>div{padding:12px 14px!important;gap:8px!important}.page-actions{gap:6px}.user-badge{background:transparent;border:0;padding:0;font-size:12px}.workspace>.app-main,.workspace>main{padding:14px 10px 28px!important}.workspace .app-card{padding:13px!important;border-radius:10px!important}.workspace .roster-toolbar{gap:6px!important}.nav-group{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace .sal-title{font-size:20px!important}.join-page{padding:24px 12px!important}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{.login-page,.workspace-nav{display:none!important}.workspace{padding:0!important}}@media screen{.desktop-nav-toggle{display:block;align-self:stretch;border:0;border-top:1px solid var(--soft);background:transparent;color:var(--muted);font-size:13px;text-align:right;padding:8px 12px;margin:-8px 0 16px;cursor:pointer}.workspace>.app-main,.workspace>.workspace-content{max-width:none!important;width:100%;box-sizing:border-box}.workspace>.workspace-content{padding:24px 28px 40px!important}.workspace .app-card{border:0!important;border-radius:0!important;box-shadow:none!important;padding:20px 0!important;background:transparent!important}.workspace .roster-grid{background:#fff}.workspace .metric-card{box-shadow:none;border:0!important;border-left:2px solid var(--line)!important;border-radius:0!important;padding:12px 16px!important;background:transparent!important}.workspace .pa-bar{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:8px 0 18px}.approval-drawer{border-bottom:1px solid var(--line);margin-bottom:18px}.approval-drawer>summary{display:flex;gap:12px;align-items:center;cursor:pointer;padding:0 0 15px;list-style:none;font-size:14px;color:var(--ink);font-weight:650}.approval-drawer>summary::-webkit-details-marker{display:none}.approval-drawer>summary:before{content:"›";font-size:22px;line-height:1;color:var(--muted)}.approval-drawer[open]>summary:before{transform:rotate(90deg)}.approval-drawer>summary span{font-size:13px;color:var(--muted);font-weight:400}.approval-drawer>summary span.pending-count{color:#af3544;font-weight:750}.approval-drawer>summary small{margin-left:auto;color:var(--muted);font-size:12px;font-weight:400}.approval-drawer>div{box-shadow:none!important;border-radius:8px!important}.toolbar-menu{position:relative}.toolbar-menu>div{display:flex;gap:8px}.module-tabs{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;padding-bottom:8px!important}.module-tabs button{flex:none;white-space:nowrap}.workspace-tool>.tool-content{max-width:none!important;padding:32px!important}}@media screen and (min-width:901px){.workspace:has(.workspace-nav.is-compact){--sidebar-width:72px}.workspace-nav.is-compact{padding:22px 10px}.is-compact .workspace-brand{padding:0 0 18px;justify-content:center;overflow:hidden}.is-compact .workspace-brand .brand-full{height:auto!important;width:52px!important;max-width:100%}.is-compact .nav-group-label,.is-compact .nav-link>i,.is-compact .nav-link>span,.is-compact .workspace-brand span,.is-compact .workspace-nav-footer{display:none}.is-compact .desktop-nav-toggle{text-align:center;margin:0 0 18px;font-size:24px;padding:0;height:32px}.is-compact .nav-link{justify-content:center;padding:12px;margin-bottom:8px}.is-compact .nav-group+.nav-group{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.workspace .pa-kpi{grid-template-columns:repeat(6,minmax(0,1fr))!important}.workspace .page-header>div{min-height:72px;padding-top:14px!important;padding-bottom:14px!important}.workspace .calc-workbench{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.7fr);grid-gap:22px 30px;gap:22px 30px;align-items:start}.calc-workbench>section{min-width:0;margin-bottom:0!important;border:0!important;border-top:1px solid var(--line)!important;padding:20px 0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important}.calc-workbench>section:first-child{grid-column:1;grid-row:1}.calc-workbench>section:nth-child(2){grid-column:1;grid-row:2}.calc-workbench>section:nth-child(3){grid-column:2;grid-row:1}.calc-workbench>section:nth-child(4){grid-column:2;grid-row:2}.calc-workbench>section:nth-child(5){grid-column:1/-1;grid-row:3}}@media screen and (min-width:901px) and (max-width:1150px){.workspace .pa-kpi{grid-template-columns:repeat(4,minmax(0,1fr))!important}}@media screen and (max-width:900px){.desktop-nav-toggle{display:none}.workspace .page-header{position:relative!important}.workspace-tool>.tool-content,.workspace>.workspace-content{padding:18px 16px 32px!important}.workspace button:not(.sched-cell):not(.shift-opt),.workspace select{min-height:40px}.workspace input:not([type=checkbox]):not([type=radio]):not([type=color]),.workspace select,.workspace textarea{font-size:16px!important}.workspace .app-card{padding:14px 0!important}.workspace .metric-card{padding:12px!important}.workspace .roster-toolbar{overflow:visible}}@media screen{.roster-grid{width:100%!important}.roster-grid td,.roster-grid th{box-sizing:border-box}.roster-scroll-hint{display:none}.roster-scroll{width:100%;scrollbar-width:thin;scrollbar-color:#aab9ce #edf1f6}.roster-grid .sched-cell{box-sizing:border-box}}@media screen and (max-width:600px){.roster-scroll-hint{display:block;color:var(--muted);font-size:12px;text-align:right;padding:5px 0 8px}.workspace-roster .roster-grid td:first-child,.workspace-roster .roster-grid th:first-child{position:static!important}.workspace-roster .roster-grid td:nth-child(2),.workspace-roster .roster-grid th:nth-child(2){left:0!important;box-shadow:2px 0 0 #dce3ed}.workspace-roster .roster-grid button[title=\4E0A\79FB],.workspace-roster .roster-grid button[title=\4E0B\79FB]{min-height:22px!important}}@media screen and (min-width:901px){.toolbar-trigger{display:none}.toolbar-menu>div{display:flex!important}}@media screen and (max-width:900px){.toolbar-trigger{border:1px solid var(--line);background:#fff;padding:8px 12px;color:var(--ink);font-size:14px;cursor:pointer}.toolbar-menu:not(.is-open)>div{display:none!important}.toolbar-menu.is-open>div{display:flex;position:absolute;top:100%;right:0;background:#fff;border:1px solid var(--line);padding:12px;border-radius:8px;box-shadow:0 8px 24px #182b4920;z-index:55;min-width:160px;flex-direction:column}}@media screen and (max-width:600px){.toolbar-menu.is-open>div{left:0;right:auto}.page-description{display:none}.header-user{max-width:80px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@keyframes ldBreathe{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes ldGlow{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:.8;transform:scale(1.15)}}@keyframes ldDot{0%,20%{opacity:.2;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}80%,to{opacity:.2;transform:translateY(0)}}@keyframes ldIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ld-full{position:fixed;inset:0;z-index:90;gap:14px;padding:24px;background:linear-gradient(180deg,#e3eff7,#edf4f9 50%,#f2f7fa);animation:ldIn .35s ease both}.ld-full,.ld-inline{display:flex;flex-direction:column;align-items:center;justify-content:center}.ld-inline{gap:8px;padding:28px 12px}.ld-wrap{position:relative;display:grid;place-items:center;padding:18px 26px}.ld-glow{position:absolute;inset:0;border-radius:50%;background:radial-gradient(closest-side,rgba(36,76,134,.22),rgba(36,76,134,0));animation:ldGlow 1.8s ease-in-out infinite}.ld-logo{position:relative;z-index:1;height:64px;width:auto;max-width:min(260px,70vw);animation:ldBreathe 1.8s ease-in-out infinite}.ld-inline .ld-logo{height:34px}.ld-inline .ld-wrap{padding:10px 16px}.ld-brand{font-size:20px;font-weight:800;color:#244c86;letter-spacing:3px;margin-top:6px}.ld-text{display:inline-flex;align-items:baseline;gap:2px;font-size:14px;font-weight:700;color:#5b6b7c}.ld-inline .ld-text{font-size:13px}.ld-dots i{display:inline-block;width:4px;height:4px;border-radius:50%;background:#5b6b7c;margin-left:3px;animation:ldDot 1.1s infinite}.ld-dots i:nth-child(2){animation-delay:.15s}.ld-dots i:nth-child(3){animation-delay:.3s}@media (prefers-reduced-motion:reduce){.ld-dots i,.ld-full,.ld-glow,.ld-logo{animation:none}}