:root{--pe-teal:#5db8a8;--pe-indigo:#8a8fe8;--pe-sky:#6fb1de;--pe-sand:#d9b26a;--pe-coral:#e39a84;--pe-red:#e07a7a}.pe-ring{flex-shrink:0;place-items:center;display:inline-grid;position:relative}.pe-ring svg{transform:rotate(-90deg)}.pe-ring .trk{stroke:var(--color-track,#eeedf4)}.dark .pe-ring .trk{stroke:#ffffff14}.pe-ring .val{transition:stroke-dashoffset 1.3s cubic-bezier(.16,1,.3,1) .15s}.pe-ring-n{text-align:center;place-items:center;line-height:1;display:grid;position:absolute;inset:0}.pe-punch{color:#fff;background:radial-gradient(circle at 30% 25%, color-mix(in srgb, var(--app-2) 70%, white), var(--app) 70%);width:132px;height:132px;box-shadow:0 18px 40px -16px color-mix(in srgb, var(--app) 80%, transparent), inset 0 -6px 14px #0000001f;-webkit-tap-highlight-color:transparent;border-radius:999px;place-items:center;font-size:15px;font-weight:800;transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,filter .2s;display:grid;position:relative}.pe-punch:hover{transform:translateY(-2px)scale(1.02)}.pe-punch:active{transform:scale(.92)}.pe-punch.is-out{background:radial-gradient(circle at 30% 25%,#f3b8a6,#d9826b 70%);box-shadow:0 18px 40px -16px #d9826bcc,inset 0 -6px 14px #0000001f}.pe-punch:before,.pe-punch:after{content:"";border-radius:inherit;border:2px solid color-mix(in srgb, var(--app) 30%, transparent);pointer-events:none;animation:2.6s ease-out infinite pePulse;position:absolute;inset:-10px}.pe-punch.is-out:before,.pe-punch.is-out:after{border-color:#d9826b4d}.pe-punch:after{animation-delay:1.3s}.pe-punch.is-done:before,.pe-punch.is-done:after{opacity:0;animation:none}.pe-punch.is-pop{animation:.7s cubic-bezier(.34,1.56,.64,1) pePop}.pe-punch-sm{width:96px;height:96px;font-size:13px}@keyframes pePulse{0%{opacity:.9;transform:scale(.92)}to{opacity:0;transform:scale(1.18)}}@keyframes pePop{0%{transform:scale(.85)}45%{transform:scale(1.08)}to{transform:scale(1)}}.pe-ripple{background:color-mix(in srgb, var(--app) 40%, transparent);pointer-events:none;border-radius:999px;animation:.9s ease-out forwards peRipple;position:absolute;inset:0}@keyframes peRipple{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}.pe-live-dot{background:#22c55e;border-radius:99px;width:8px;height:8px;animation:2s ease-out infinite peLive;box-shadow:0 0 #22c55e80}@keyframes peLive{70%{box-shadow:0 0 0 7px #22c55e00}to{box-shadow:0 0 #22c55e00}}.pe-qa{text-align:center;border:1px solid var(--color-line);background:#ffffffbf;border-radius:20px;flex-direction:column;align-items:center;gap:8px;padding:14px 6px;font-size:12.5px;font-weight:700;line-height:1.2;transition:transform .35s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .3s;display:flex}.dark .pe-qa{background:#ffffff0a;border-color:#ffffff12}.pe-qa:hover{border-color:color-mix(in srgb, var(--app) 35%, transparent);transform:translateY(-3px);box-shadow:0 16px 30px -18px #22263759}.pe-qa:active{transform:scale(.96)}.pe-qa-ic{border-radius:15px;place-items:center;width:44px;height:44px;display:grid}.pe-tone{background:var(--t)}.pe-sw{background:var(--t);border-radius:4px;flex-shrink:0;width:10px;height:10px;display:inline-block}.pe-cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.pe-cal-h{color:var(--color-muted);text-align:center;padding-bottom:2px;font-size:10.5px;font-weight:700}.pe-day{aspect-ratio:1;background:var(--color-surface-2,#f7f6fb);min-height:34px;color:var(--color-ink-2);cursor:default;animation:.5s cubic-bezier(.16,1,.3,1) both peCell;animation-delay:calc(var(--i,0) * 12ms);border:1px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:1px;font-size:12.5px;font-weight:700;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;display:flex;position:relative}.dark .pe-day{color:#d6d7df;background:#ffffff0a}button.pe-day{cursor:pointer}button.pe-day:hover{transform:translateY(-2px);box-shadow:0 8px 18px -10px #22263759}.pe-day small{opacity:.8;font-size:9px;font-weight:700}@media (width>=768px){.pe-day{aspect-ratio:1.5}}@media (width<=480px){.pe-day small{display:none}.pe-cal{gap:4px}.pe-day{border-radius:10px}}.pe-day[data-s=office]{--t:var(--pe-teal)}.pe-day[data-s=field]{--t:var(--pe-coral)}.pe-day[data-s=wfh]{--t:var(--pe-indigo)}.pe-day[data-s=leave],.pe-day[data-s=pending]{--t:var(--pe-sky)}.pe-day[data-s=holiday]{--t:var(--pe-sand)}.pe-day[data-s=missed]{--t:var(--pe-red)}.pe-day[data-s=office],.pe-day[data-s=field],.pe-day[data-s=wfh],.pe-day[data-s=leave],.pe-day[data-s=holiday]{background:color-mix(in srgb, var(--t) 20%, white);color:color-mix(in srgb, var(--t) 55%, black)}.dark .pe-day[data-s=office],.dark .pe-day[data-s=field],.dark .pe-day[data-s=wfh],.dark .pe-day[data-s=leave],.dark .pe-day[data-s=holiday]{background:color-mix(in srgb, var(--t) 26%, transparent);color:color-mix(in srgb, var(--t) 50%, white)}.pe-day[data-s=pending]{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--t) 16%, white) 0 5px, color-mix(in srgb, var(--t) 6%, white) 5px 10px);color:color-mix(in srgb, var(--t) 55%, black)}.dark .pe-day[data-s=pending]{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--t) 22%, transparent) 0 5px, transparent 5px 10px);color:color-mix(in srgb, var(--t) 50%, white)}.pe-day[data-s=missed]{border:1.5px dashed var(--t);color:#b4534f;background:#fff}.dark .pe-day[data-s=missed]{color:#f2a7a7;background:0 0}.pe-day[data-s=off]{color:var(--color-muted);background:0 0;font-weight:600}.pe-day[data-s=future]{border:1px solid var(--color-line);color:var(--color-muted);background:0 0;font-weight:600}.dark .pe-day[data-s=future]{border-color:#ffffff12}.pe-day[data-s=today]{background:var(--app);color:#fff;box-shadow:0 0 0 4px color-mix(in srgb, var(--app) 18%, transparent)}.pe-day.is-sel{outline:2px solid var(--color-ink,#222637);outline-offset:2px}.dark .pe-day.is-sel{outline-color:#fff}@keyframes peCell{0%{opacity:0;transform:scale(.8)}}.pe-wk{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:8px;height:150px;display:grid;position:relative}.pe-wk-bar{background:var(--t,var(--app));transform-origin:bottom;animation:.9s cubic-bezier(.16,1,.3,1) both peGrowY;animation-delay:calc(.1s + var(--i,0) * 70ms);border-radius:10px 10px 6px 6px;min-height:4px;position:relative}.pe-wk-line{border-top:1.5px dashed color-mix(in srgb, var(--app) 50%, transparent);pointer-events:none;position:absolute;left:0;right:0}@keyframes peGrowY{0%{transform:scaleY(0)}}.pe-mc{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;display:grid}.pe-mc-h{color:var(--color-muted);text-align:center;padding:4px 0;font-size:10.5px;font-weight:700}.pe-mc-d{border-radius:12px;place-items:center;height:40px;font-size:13px;font-weight:600;transition:background-color .15s,color .15s,transform .25s cubic-bezier(.34,1.56,.64,1);display:grid;position:relative}.pe-mc-d:not(:disabled):hover{background:color-mix(in srgb, var(--app) 10%, transparent)}.pe-mc-d:not(:disabled):active{transform:scale(.9)}.pe-mc-d:disabled{color:var(--color-muted);opacity:.45;cursor:not-allowed}.pe-mc-d.is-wk{color:var(--color-muted)}.pe-mc-d.is-hol{color:#a87a24}.dark .pe-mc-d.is-hol{color:#e6c47e}.pe-mc-d.is-mine:after,.pe-mc-d.is-team:after,.pe-mc-d.is-hol:after{content:"";border-radius:9px;width:5px;height:5px;margin-left:-2.5px;position:absolute;bottom:5px;left:50%}.pe-mc-d.is-hol:after{background:var(--pe-sand)}.pe-mc-d.is-mine:after{background:var(--pe-sky)}.pe-mc-d.is-team:after{background:var(--pe-indigo)}.pe-mc-d.in-range{background:color-mix(in srgb, var(--app) 13%, transparent);border-radius:6px}.pe-mc-d.is-start,.pe-mc-d.is-end{background:var(--app);color:#fff;border-radius:12px}.pe-mc-d.is-start:after,.pe-mc-d.is-end:after{background:#fff}.pe-mc-d.is-today{box-shadow:inset 0 0 0 1.5px var(--app)}.pe-strip{grid-template-columns:112px repeat(14,minmax(30px,1fr));align-items:center;gap:4px;min-width:560px;display:grid}.pe-strip-c{background:var(--color-surface-2,#f7f6fb);border-radius:8px;height:30px}.dark .pe-strip-c{background:#ffffff0a}.pe-strip-c.is-wk{border:1px dashed var(--color-line);background:0 0}.dark .pe-strip-c.is-wk{border-color:#ffffff12}.pe-strip-c.is-hol{background:color-mix(in srgb, var(--pe-sand) 28%, transparent)}.pe-strip-c.is-off{background:var(--pe-indigo)}.pe-strip-c.is-tent{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--pe-indigo) 50%, transparent) 0 4px, color-mix(in srgb, var(--pe-indigo) 18%, transparent) 4px 8px)}.pe-strip-c.is-me.is-off{background:var(--app)}.pe-strip-c.is-me.is-tent{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--app) 60%, transparent) 0 4px, color-mix(in srgb, var(--app) 20%, transparent) 4px 8px)}.pe-strip-c{transform-origin:0;animation:.6s cubic-bezier(.16,1,.3,1) both peStrip;animation-delay:calc(var(--i,0) * 18ms)}@keyframes peStrip{0%{opacity:0;transform:scaleX(.4)}}.pe-cite{background:color-mix(in srgb, var(--app) 9%, white);height:24px;color:color-mix(in srgb, var(--app) 80%, black);border:1px solid color-mix(in srgb, var(--app) 18%, transparent);animation:.45s cubic-bezier(.16,1,.3,1) both paRise;animation-delay:calc(var(--i,0) * 90ms);border-radius:99px;align-items:center;gap:5px;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.dark .pe-cite{background:color-mix(in srgb, var(--app) 18%, transparent);color:var(--app-2)}.pe-ai-card{position:relative;overflow:hidden}.pe-ai-card:before{content:"";pointer-events:none;background:radial-gradient(closest-side,#a78bfa2e,#0000);border-radius:999px;width:220px;height:220px;position:absolute;top:-80px;right:-60px}.pe-slip-row{justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;font-size:13.5px;display:flex}.pe-slip-row+.pe-slip-row{border-top:1px dashed var(--color-line)}.dark .pe-slip-row+.pe-slip-row{border-color:#ffffff12}.pe-net{background:linear-gradient(120deg, color-mix(in srgb, var(--app) 12%, white), color-mix(in srgb, var(--app-2) 14%, white))}.dark .pe-net{background:linear-gradient(120deg, color-mix(in srgb, var(--app) 24%, #17171e), color-mix(in srgb, var(--app-2) 10%, #17171e))}.pe-blur{filter:blur(7px);user-select:none;transition:filter .3s}.pe-illus{color:#8a5a00;background:#fff6e5;border:1px solid #f3ddb0;border-radius:99px;align-items:center;gap:5px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.dark .pe-illus{color:#fbc968;background:#f5a5241f;border-color:#f5a52440}.pe-mbar{align-items:flex-end;gap:8px;height:110px;display:flex}.pe-mbar>button{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;min-width:0;height:100%;display:flex}.pe-mbar i{background:color-mix(in srgb, var(--app) 30%, transparent);transform-origin:bottom;width:100%;max-width:34px;animation:.9s cubic-bezier(.16,1,.3,1) both peGrowY;animation-delay:calc(.1s + var(--i,0) * 60ms);border-radius:9px 9px 5px 5px;transition:background-color .2s;display:block}.pe-mbar>button:hover i{background:color-mix(in srgb, var(--app) 55%, transparent)}.pe-mbar>button.is-on i{background:var(--app)}.pe-mbar span{color:var(--color-muted);font-size:10.5px;font-weight:700}.pe-mbar>button.is-on span{color:var(--app-ink)}.pe-rise>*{animation:.5s cubic-bezier(.16,1,.3,1) both paRise}.pe-rise>:first-child{animation-delay:40ms}.pe-rise>:nth-child(2){animation-delay:90ms}.pe-rise>:nth-child(3){animation-delay:.14s}.pe-rise>:nth-child(4){animation-delay:.19s}.pe-rise>:nth-child(5){animation-delay:.24s}.pe-rise>:nth-child(6){animation-delay:.29s}.pe-rise>:nth-child(n+7){animation-delay:.34s}.pe-new{animation:.7s cubic-bezier(.16,1,.3,1) both peNew}@keyframes peNew{0%{opacity:0;background-color:color-mix(in srgb, var(--app) 14%, transparent);transform:translateY(-10px)scale(.98)}}.pe-hscroll{overscroll-behavior-x:contain;scrollbar-width:thin;overflow-x:auto}.pe-row{transition:background-color .15s}.pe-row:hover{background:color-mix(in srgb, var(--app) 4%, transparent)}.pe-confirm{animation:.5s cubic-bezier(.16,1,.3,1) both paRise}.pe-shake{animation:.4s peShake}@keyframes peShake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.portal-tabbar-item{min-width:0}.portal-tabbar-item>span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:block;overflow:hidden}.portal-tabbar:has(>.portal-tabbar-item:nth-child(6):not([hidden])){padding:5px;left:8px;right:8px}.portal-tabbar:has(>.portal-tabbar-item:nth-child(6):not([hidden])) .portal-tabbar-item{letter-spacing:-.01em;padding:6px 1px;font-size:9.5px}.pe-team-card{position:relative;overflow:hidden}.pe-team-card:after{content:"";background:radial-gradient(closest-side, color-mix(in srgb, var(--app) 16%, transparent), transparent);pointer-events:none;border-radius:999px;width:170px;height:170px;position:absolute;top:-60px;right:-50px}@media (prefers-reduced-motion:reduce){.pe-punch:before,.pe-punch:after,.pe-punch.is-pop,.pe-ripple,.pe-live-dot,.pe-day,.pe-wk-bar,.pe-strip-c,.pe-cite,.pe-mbar i,.pe-rise>*,.pe-new,.pe-confirm,.pe-shake{animation:none!important}.pe-ring .val{transition:none}.pe-qa:hover,.pe-punch:hover,button.pe-day:hover{transform:none}}@media (width<=639px){#portal-page :is(a,button,summary):is(.text-xs,[class*="text-[11px]"],.row-link,.font-semibold,.font-bold,.text-muted):not(.btn,.chip,.icon-btn,.menu-item,.org-toggle,.absolute,.fixed,.card,.card-flat,.portal-tab,.portal-tabbar-item,.pe-qa){position:relative}#portal-page :is(a,button,summary):is(.text-xs,[class*="text-[11px]"],.row-link,.font-semibold,.font-bold,.text-muted):not(.btn,.chip,.icon-btn,.menu-item,.org-toggle,.absolute,.fixed,.card,.card-flat,.portal-tab,.portal-tabbar-item,.pe-qa):before{content:"";position:absolute;inset:-10px -4px}}
