*{-webkit-tap-highlight-color:transparent}html{overflow-y:scroll;scrollbar-width:none}html::-webkit-scrollbar{display:none}html{text-size-adjust:100%}body{overscroll-behavior:none;-webkit-overflow-scrolling:touch;width:100%;height:100%}#__next,body{position:fixed}#__next{top:0;left:0;right:0;bottom:0;overflow:hidden}img{backface-visibility:hidden;-webkit-backface-visibility:hidden}a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.sidebar-drawer{will-change:transform;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}.page-transition{animation:fadeIn .12s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.scroll-container{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f4f6fa;--surface:#fff;--sf2:#f0f3f9;--sf3:#e8edf5;--border:#dde3ef;--border2:#c8d0e0;--text:#0c1629;--t2:#3d4a6b;--t3:#7b87a6;--t4:#b0bad0;--blue:#1b5fa8;--blue-light:#e8f0fa;--teal:#0d8c6e;--teal-light:#e3f5ef;--amber:#c47d1a;--amber-light:#fdf3e0;--rose:#c03a4a;--rose-light:#fceaec;--violet:#5b45a8;--violet-light:#edebf9;--sidebar:#0c1a35}body,html{height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:#0c1629;color:var(--text);font-size:13px;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes blink-bar{0%,to{opacity:1}50%{opacity:.2}}@keyframes spin{to{transform:rotate(1turn)}}.blink{animation:blink-bar 2.5s ease-in-out infinite}.fade-up{animation:fadeUp .3s ease both}.banner-actions{display:flex;gap:8px;flex-shrink:0;align-items:center}@media (max-width:640px){.banner-actions{flex-direction:column;align-items:stretch;gap:6px}.banner-actions>button{justify-content:center}}@media (max-width:768px){.desktop-only{display:none!important}.mobile-only{display:flex!important}}@media (min-width:769px){.mobile-only{display:none!important}}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40}.sidebar-overlay.open{display:block}@media (max-width:768px){.sidebar-drawer{position:fixed!important;top:0;bottom:0;left:0;z-index:50;transform:translateX(-224px);transition:transform .25s cubic-bezier(.4,0,.2,1);will-change:transform}.sidebar-drawer.open{transform:translateX(0)!important}.app-main{padding-top:0!important}}@media (max-width:640px){.grid-7{grid-template-columns:repeat(2,1fr)!important}.grid-2,.grid-3{grid-template-columns:1fr!important}}@media (min-width:641px) and (max-width:1279px){.grid-7{grid-template-columns:repeat(4,1fr)!important}}@media (min-width:641px){.grid-7{align-items:stretch;grid-auto-rows:1fr}}@media (min-width:769px){.rov-native{--rov-topinset:max(env(safe-area-inset-top),24px)}.rov-native .app-root{padding-top:var(--rov-topinset);box-sizing:border-box}.rov-native .app-root:before{content:"";position:fixed;top:0;left:0;right:0;height:var(--rov-topinset);background:var(--sidebar)}}@media (max-width:768px){button,input,select,textarea{min-height:40px}.topbar-actions{flex-wrap:wrap;gap:6px!important}}@supports (-webkit-touch-callout:none){input,input[class],select,select[class],textarea,textarea[class]{font-size:16px!important}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;box-sizing:border-box;text-align:left}}@media (max-width:768px){#__next,body,main{overflow-x:hidden;max-width:100vw}.page-title{font-size:14px!important}.mobile-pad{padding:12px!important}select{min-height:38px}.filter-row{flex-wrap:wrap;gap:6px!important}button[style*=""50%],button[style*="border-radius: 50%"]{flex-shrink:0!important;flex-grow:0!important;aspect-ratio:1/1}}.tl-btn{width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;border-radius:50%!important;flex-shrink:0!important;flex-grow:0!important;display:block!important;padding:0!important;aspect-ratio:1!important}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.opsp-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;align-items:start;width:100%}.opsp-col{display:flex;flex-direction:column;min-width:0;width:100%}@media (max-width:900px){.opsp-grid{grid-template-columns:1fr!important;gap:0!important}}@media (max-width:768px){:root{--bottom-nav-height:60px}.scroll-container,[style*="overflow-y: auto"],[style*="overflowY:auto"]{padding-bottom:calc(60px + env(safe-area-inset-bottom))!important}}@media (min-width:769px){:root{--bottom-nav-height:0px}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}}@media (max-width:1024px){.tw-main-grid{grid-template-columns:1fr 280px;gap:14px}}@media (max-width:768px){.tw-header{padding:12px 14px 10px!important}.tw-scroll-body{padding:12px 12px 90px!important;overflow-x:hidden!important}.tw-stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}.tw-week-grid{gap:4px!important}.tw-main-grid{grid-template-columns:1fr!important;gap:14px!important}.tw-right-col{position:static!important}.tw-dept-bar{flex-wrap:wrap!important;gap:0!important}.tw-stat-card{padding:12px!important;gap:10px!important}.tw-notice-warn{padding:10px 12px!important;font-size:13px!important}.tw-main-grid .ai-input-row,.tw-main-grid input{max-width:100%!important;box-sizing:border-box!important}.ms-r,.ms-thead{grid-template-columns:52px 1fr 0 100px 0!important}}@media (max-width:480px){.tw-stats-grid{grid-template-columns:repeat(2,1fr)!important}.tw-header .hdr-title{font-size:17px!important}.ms-r,.ms-thead{grid-template-columns:44px 1fr 90px!important}}.tw-header{padding:14px 22px 12px}.tw-dept-bar{display:flex;align-items:center}.tw-scroll-body{padding:18px 22px 40px;overflow-x:hidden;max-width:100%}.tw-notice-warn{background:#fffbeb;border:.5px solid #fde68a;padding:12px 16px}.tw-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:18px}.tw-week-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:7px;gap:7px;margin-bottom:14px}.tw-main-grid{display:grid;grid-template-columns:1fr 320px;grid-gap:20px;gap:20px;align-items:start}.tw-right-col{position:-webkit-sticky;position:sticky;top:0}.tw-ai-input{color:#fff!important;caret-color:#fff}.tw-ai-input::placeholder{color:hsla(0,0%,100%,.4)!important}@keyframes tw-scroll-placeholder{0%,20%{transform:translateX(0)}80%,to{transform:translateX(-45%)}}.tw-ai-placeholder{font-size:13px;color:hsla(0,0%,100%,.45);white-space:nowrap;font-family:inherit;animation:tw-scroll-placeholder 4s ease-in-out infinite alternate;display:inline-block}@media (max-width:1100px){.tw-main-grid{grid-template-columns:1fr 280px;gap:14px}}@media (max-width:768px){.tw-scroll-body{padding:12px 12px 100px!important;overflow-x:hidden!important;max-width:100vw!important}.tw-header{padding:10px 14px!important}.tw-dept-bar{flex-wrap:wrap!important}.tw-stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important;margin-bottom:14px!important}.tw-week-grid{gap:3px!important;margin-bottom:12px!important}.tw-main-grid{display:flex!important;flex-direction:column!important;gap:14px!important;overflow:hidden!important}.tw-main-grid,.tw-right-col{width:100%!important;max-width:100%!important}.tw-right-col{position:static!important}.tw-main-grid>div:first-child{width:100%!important;max-width:100%!important;overflow:hidden!important}.tw-notice-warn{padding:10px 12px!important;font-size:12.5px!important}.tw-ms-thead{display:none!important}.tw-ms-row{display:flex!important;flex-direction:column!important;padding:12px 14px!important;gap:4px!important}.tw-people-row{grid-template-columns:1fr 80px 80px!important}}@media (max-width:480px){.tw-stats-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}.tw-scroll-body{padding:10px 10px 100px!important}.tw-header{padding:8px 12px!important}}.tw-prog-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.tw-prog-legend,.tw-submit-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tw-ms-thead{display:grid;grid-template-columns:52px 1fr 140px 120px 80px;padding:9px 18px;background:#f8fafc;border-bottom:.5px solid #e2e8f0;font-size:10.5px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;grid-gap:8px;gap:8px}@media (max-width:768px){.tw-prog-legend{gap:8px!important;justify-content:flex-start!important}.tw-submit-bar{flex-direction:column!important;align-items:stretch!important}.tw-submit-bar button{width:100%!important;justify-content:center!important}.tw-ms-thead{display:none!important}.tw-right-col>div,.tw-right-col>div>*{max-width:100%!important;box-sizing:border-box!important}.tw-ai-input{font-size:13px!important;width:100%!important;box-sizing:border-box!important}}.tw-ms-row{display:grid;grid-template-columns:52px 1fr 140px 120px 80px;align-items:center;grid-gap:8px;gap:8px}.tw-ms-row:hover{background:#f8fafc}@media (max-width:768px){.tw-ms-row{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:6px!important}.tw-ms-row>:nth-child(4),.tw-ms-row>:nth-child(5){display:none!important}.tw-ms-row>:first-child{margin-bottom:2px}.tw-ms-row>:nth-child(2){width:100%}.tw-ms-row>:nth-child(3){align-self:flex-end;margin-top:-28px}}@keyframes tw-tab-glow{0%,to{box-shadow:0 2px 8px rgba(37,99,235,.2)}50%{box-shadow:0 4px 16px rgba(37,99,235,.35)}}@keyframes tw-pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}@keyframes tw-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes tw-stat-pop{0%{transform:scale(.96);opacity:0}60%{transform:scale(1.02)}to{transform:scale(1);opacity:1}}.tw-tab-bar{display:flex;background:#f1f5f9;border-radius:14px;padding:5px;gap:4px;margin-bottom:18px;border:1px solid #e2e8f0;box-shadow:inset 0 1px 3px rgba(0,0,0,.06)}.tw-tab-btn{flex:1 1;padding:10px 8px;border-radius:10px;border:1.5px solid transparent;font-size:12.5px;font-weight:500;color:#64748b;cursor:pointer;font-family:inherit;background:transparent;transition:all .22s cubic-bezier(.34,1.56,.64,1);display:flex;flex-direction:column;align-items:center;gap:5px}.tw-tab-btn span{font-size:11px;font-weight:600;letter-spacing:.1px}.tw-tab-btn:hover:not(.active){background:hsla(0,0%,100%,.7);color:#374151;transform:translateY(-1px)}.tw-tab-btn.active{font-weight:700;box-shadow:0 2px 12px rgba(0,0,0,.1),0 1px 3px rgba(0,0,0,.08);animation:tw-tab-glow 2.5s ease-in-out infinite}.tw-tab-content{animation:tw-fade-in .25s ease-out}.tw-stat-card{animation:tw-stat-pop .35s ease-out;transition:transform .15s,box-shadow .15s}.tw-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.1)!important}.tw-week-active-pulse{animation:tw-pulse-dot 2s ease-in-out infinite}@media (max-width:768px){.tw-tab-bar{border-radius:12px;padding:4px;gap:3px;margin-bottom:14px}.tw-tab-btn{padding:8px 4px;gap:4px}.tw-tab-btn span{font-size:10px}.tw-tab-btn i{font-size:15px!important}}@keyframes tw-stat-entry{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tw-stat-shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes tw-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.tw-stat-card{background:#fff;border:none;border-radius:16px;padding:18px 16px;display:flex;align-items:center;gap:14px;box-shadow:0 2px 12px rgba(0,0,0,.07),0 1px 3px rgba(0,0,0,.05);animation:tw-stat-entry .4s cubic-bezier(.34,1.56,.64,1) both;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.tw-stat-card:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,hsla(0,0%,100%,.06),transparent 60%);pointer-events:none}.tw-stat-card:first-child{animation-delay:.05s}.tw-stat-card:nth-child(2){animation-delay:.1s}.tw-stat-card:nth-child(3){animation-delay:.15s}.tw-stat-card:nth-child(4){animation-delay:.2s}.tw-stat-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.1),0 2px 6px rgba(0,0,0,.06)}.tw-stat-grad{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;animation:tw-float 4s ease-in-out infinite}.tw-stat-card:nth-child(2) .tw-stat-grad{animation-delay:.5s}.tw-stat-card:nth-child(3) .tw-stat-grad{animation-delay:1s}.tw-stat-card:nth-child(4) .tw-stat-grad{animation-delay:1.5s}.tw-stat-val{font-size:26px;font-weight:800;color:#0f172a;line-height:1;letter-spacing:-.5px}.tw-stat-sub{font-size:11.5px;color:#64748b;margin-top:3px;font-weight:500}.tw-stat-lbl{font-size:10px;color:#94a3b8;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-top:3px}.tw-stat-change{font-size:10.5px;color:#94a3b8;font-weight:600;white-space:nowrap;writing-mode:vertical-rl;-webkit-text-orientation:mixed;text-orientation:mixed;transform:rotate(180deg);align-self:stretch;display:flex;align-items:center;opacity:.6}@keyframes tw-wk-pulse{0%,to{box-shadow:0 0 0 0 rgba(37,99,235,.4)}50%{box-shadow:0 0 0 7px rgba(37,99,235,0)}}@keyframes tw-wk-pop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.tw-wk-cell{aspect-ratio:1;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transition:transform .18s cubic-bezier(.34,1.56,.64,1);animation:tw-wk-pop .25s ease-out both;overflow:hidden;border:1.5px solid transparent}.tw-wk-cell:hover{transform:scale(1.08) translateY(-2px)}.tw-wk-done{background:#e8f5f0;border-color:#a7d4c4;box-shadow:0 2px 6px rgba(16,130,99,.15)}.tw-wk-done .tw-wk-num{color:#0d7a5f;font-weight:700}.tw-wk-done .tw-wk-dot{background:#10b981}.tw-wk-done .tw-wk-check{color:#0d7a5f;font-size:9px;position:absolute;bottom:3px}.tw-wk-active{background:linear-gradient(145deg,#2563eb,#1b5fa8);border-color:#1d4ed8;box-shadow:0 4px 14px rgba(37,99,235,.45);animation:tw-wk-pulse 2.5s ease-in-out infinite,tw-wk-pop .25s ease-out both}.tw-wk-active .tw-wk-num{color:#fff;font-weight:800}.tw-wk-active .tw-wk-dot{background:hsla(0,0%,100%,.55)}.tw-wk-active .tw-wk-now{color:hsla(0,0%,100%,.8);font-size:7px;font-weight:700;letter-spacing:.5px;position:absolute;bottom:3px}.tw-wk-pending{background:#eff4fb;border-color:#bfcfe8;box-shadow:0 1px 4px rgba(37,99,235,.1)}.tw-wk-pending .tw-wk-num{color:#3b5998;font-weight:600}.tw-wk-pending .tw-wk-dot{background:#7ba3d8}.tw-wk-up{background:#f8fafc;border-color:#e2e8f0}.tw-wk-up .tw-wk-num{color:#94a3b8;font-weight:500}.tw-wk-up .tw-wk-dot{background:#cbd5e1}.tw-wk-miss{background:#fff8ec;border-color:#fcd69a;box-shadow:0 1px 4px rgba(217,119,6,.15)}.tw-wk-miss .tw-wk-num{color:#b45309;font-weight:700}.tw-wk-miss .tw-wk-dot{background:#f59e0b}.tw-wk-num{font-size:11px;letter-spacing:-.2px}.tw-wk-dot{width:5px;height:5px;border-radius:50%;margin-top:3px}.tw-week-grid>div:first-child{animation-delay:.02s}.tw-week-grid>div:nth-child(2){animation-delay:.04s}.tw-week-grid>div:nth-child(3){animation-delay:.06s}.tw-week-grid>div:nth-child(4){animation-delay:.08s}.tw-week-grid>div:nth-child(5){animation-delay:.1s}.tw-week-grid>div:nth-child(6){animation-delay:.12s}.tw-week-grid>div:nth-child(7){animation-delay:.14s}.tw-week-grid>div:nth-child(8){animation-delay:.16s}.tw-week-grid>div:nth-child(9){animation-delay:.18s}.tw-week-grid>div:nth-child(10){animation-delay:.2s}.tw-week-grid>div:nth-child(11){animation-delay:.22s}.tw-week-grid>div:nth-child(12){animation-delay:.24s}@media (max-width:768px){.tw-wk-cell{border-radius:7px}.tw-wk-num{font-size:9px!important}.tw-wk-check,.tw-wk-now{display:none}.modal-overlay{align-items:flex-end!important;padding:0!important}.modal-sheet{max-width:100%!important;width:100%!important;border-radius:16px 16px 0 0!important;max-height:92vh;overflow-y:auto}.modal-actions{flex-direction:column-reverse!important}.modal-actions>button{width:100%!important;min-height:48px}}