:root{--pvz-font:Arial,Helvetica,sans-serif;--pvz-text:16px;--pvz-small:14px;--pvz-caption:12px;--pvz-title:24px;--pvz-heading:20px;--pvz-subheading:16px;--pvz-regular:400;--pvz-medium:600;--pvz-bold:700}@media screen{body{font-family:var(--pvz-font)}.access-screen,.employee-tour,.notification-panel,.pvz-portal,.pvz-portal .finance,[data-sonner-toaster]{font-family:var(--pvz-font);font-size:var(--pvz-text);line-height:1.5}button,input,select,textarea{font-family:var(--pvz-font)}.access-screen h1,.pvz-portal h1,.pvz-portal.roster-view .pvz-shell h1{font-size:var(--pvz-title);font-weight:var(--pvz-bold);line-height:1.3}.pvz-portal .employee-tour h2,.pvz-portal [data-slot=dialog-title],.pvz-portal h2{font-size:var(--pvz-heading);font-weight:var(--pvz-bold);line-height:1.3}.pvz-portal .finance-branch-charts>h3,.pvz-portal h3,.pvz-portal h4{font-size:var(--pvz-subheading);font-weight:var(--pvz-medium);line-height:1.4}.pvz-portal .finance-check,.pvz-portal .finance-dialog .finance-check,.pvz-portal label{font-size:var(--pvz-small);font-weight:var(--pvz-medium);line-height:1.5}.pvz-portal .finance-document textarea,.pvz-portal input,.pvz-portal select,.pvz-portal textarea{font-family:var(--pvz-font);font-size:var(--pvz-text);font-weight:var(--pvz-regular);line-height:1.5}.notification-panel button,.pvz-portal .pvz-tabs button,.pvz-portal [data-slot=button]{font-size:var(--pvz-small);font-weight:var(--pvz-medium);line-height:1.4}.pvz-portal .finance-chart figcaption,.pvz-portal .finance-source,.pvz-portal .pvz-muted,.pvz-portal .shift-rate-setting>p,.pvz-portal [data-slot=dialog-description],.pvz-portal.roster-view section>.pvz-muted{font-size:var(--pvz-small);font-weight:var(--pvz-regular);line-height:1.5}.pvz-portal .pvz-brand strong{font-size:var(--pvz-subheading);white-space:nowrap;font-weight:var(--pvz-bold);line-height:1.3}.employee-tour-top,.notification-count,.notification-item small,.pvz-portal .pvz-brand p{font-size:var(--pvz-caption);line-height:1.4}.pvz-portal .bonus-badge,.pvz-portal .branch-visibility summary,.pvz-portal .employee-badge,.pvz-portal .employee-legend>span,.pvz-portal .pvz-tag{font-size:var(--pvz-small);font-weight:var(--pvz-medium);line-height:1.4}.pvz-portal .finance-values,.pvz-portal [data-slot=table-cell],.pvz-portal [data-slot=table-head]{font-size:var(--pvz-small);line-height:1.4}.pvz-portal .finance-values th,.pvz-portal [data-slot=table-head]{font-weight:var(--pvz-medium)}.pvz-portal .finance-overview strong,.pvz-portal .pvz-payment-summary strong,.pvz-portal .pvz-stats strong,.pvz-portal .pvz-total strong{font-size:var(--pvz-heading);font-weight:var(--pvz-bold);line-height:1.3;font-variant-numeric:tabular-nums}.pvz-portal .finance-overview span,.pvz-portal .pvz-payment-summary span,.pvz-portal .pvz-stats span{font-size:var(--pvz-small);line-height:1.5}.pvz-portal .city-roster .roster-add,.pvz-portal .roster-point>span{font-size:var(--pvz-small);line-height:1.3}.notification-item,.notification-toast,.notification-toast>button:first-child,[data-sonner-toast]{font-family:var(--pvz-font);font-size:var(--pvz-small);line-height:1.5}.pvz-portal .month-calendar-scroll .calendar-day{padding:clamp(2px,.6cqw,8px)}}@media screen{.pvz-portal .month-calendar-scroll :is(.calendar-shift,.roster-shift,.calendar-add,.roster-add){min-width:0;max-width:100%;min-height:0;height:auto;white-space:normal;font-size:clamp(9px,2.4cqw,14px)!important;line-height:1.25;padding:clamp(2px,.55cqw,7px)!important;gap:2px;margin:clamp(2px,.6cqw,6px) 0;overflow-wrap:anywhere}.pvz-portal .month-calendar-scroll :is(.calendar-shift,.roster-shift) :is(strong,span,small){font-size:inherit;line-height:inherit;min-width:0;max-width:100%;white-space:normal}.pvz-portal .month-calendar-scroll .roster-shift{border-left-width:2px}.pvz-portal .month-calendar-scroll :is(.closure-mark,.vacation-tag){font-size:clamp(9px,2.2cqw,13px)}.pvz-portal .month-calendar-scroll .calendar-weekday{font-size:clamp(10px,2.5cqw,14px)}.pvz-portal .month-calendar-scroll .calendar-day>strong{font-size:clamp(11px,2.7cqw,16px)}.photo-picker{margin:12px 0;overflow-wrap:anywhere}.photo-picker p{margin:0 0 6px}.photo-picker .pvz-row{justify-content:flex-start}}.mobile-navigation{display:none}@media screen and (max-width:700px){html{scroll-padding-bottom:90px}.pvz-portal{min-width:0;min-height:100dvh}.pvz-portal .pvz-shell{padding:8px 10px calc(84px + env(safe-area-inset-bottom,0px));min-width:0}.pvz-portal .pvz-header{flex-wrap:wrap;justify-content:flex-end;gap:4px;padding:6px 10px}.pvz-header .pvz-brand{flex:1 0 100%;gap:8px;margin:0;align-items:center}.pvz-header .pvz-brand>svg{display:block;flex:none;width:22px;height:22px}.pvz-header .pvz-brand>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}.pvz-header .pvz-brand p{font-size:12px;overflow-wrap:anywhere}.pvz-portal .pvz-main-tabs{display:none}.pvz-portal :is(section,[data-slot=tabs],[data-slot=tabs-content],.portal-controls,.pvz-filters,.pvz-row,.pvz-grid,.finance){min-width:0;max-width:100%}.pvz-portal :is(input,select,textarea){min-width:0;max-width:100%;font-size:16px;scroll-margin-block:80px}.pvz-portal input:not([type=checkbox]):not([type=radio]),.pvz-portal select{min-height:44px}.pvz-portal [data-slot=button]{min-height:44px;height:auto;max-width:100%;white-space:normal;overflow-wrap:anywhere;padding:8px 12px}.pvz-portal .pvz-header [data-slot=button]{min-width:44px;padding:8px}.pvz-portal .pvz-header .portal-app-button,.pvz-portal .pvz-header .portal-refresh{width:44px}.pvz-portal .pvz-card{padding:14px;border-radius:12px}.pvz-portal .request-archive{padding:0}.pvz-portal .pvz-grid{gap:10px;margin:12px 0}.pvz-portal .pvz-filters{gap:8px;width:100%}.pvz-portal .pvz-filters label{flex:1 1 160px;max-width:100%;margin:0;flex-direction:column;align-items:stretch;gap:4px}.pvz-portal .pvz-filters label:has(input[type=month]){flex:0 1 230px;flex-direction:row;align-items:center}.pvz-portal .pvz-row>label{flex:1 1 110px;max-width:100%}.pvz-portal label:has(>input[type=checkbox]),.pvz-portal label:has(>input[type=radio]){min-height:36px;align-items:center}.pvz-portal :is(.pvz-form,.finance-form-grid){grid-template-columns:minmax(0,1fr);gap:10px}.pvz-portal :is(.pvz-ledger,.pvz-total){flex-wrap:wrap;gap:8px}.pvz-portal :is(.pvz-stats,.pvz-payment-summary){gap:8px}.pvz-portal .pvz-stats>div{min-width:0;padding:12px;gap:6px}.pvz-portal .pvz-stats strong{font-size:18px;overflow-wrap:anywhere}.pvz-portal :is([data-slot=table-container],.finance-history-scroll,.finance-chart-scroll){max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}.pvz-portal .city-roster{max-width:100%;min-width:0}.pvz-portal .city-roster .roster-point{width:112px;min-width:112px;max-width:112px;padding:6px!important}.pvz-portal .city-roster .roster-shift{min-height:44px}.pvz-portal .city-roster .roster-add{min-height:36px}.pvz-portal .cash-grid th:first-child{min-width:130px;max-width:130px;width:130px;overflow-wrap:anywhere}.pvz-portal .cash-grid input:not([type=checkbox]){font-size:16px;min-height:44px}.pvz-portal .finance-chart{padding:10px;margin:14px 0}.pvz-portal .finance .pvz-tabs{display:flex;max-width:100%;overflow-x:auto;flex-wrap:nowrap}.pvz-portal .finance .pvz-tabs button{flex:none;white-space:nowrap}.pvz-portal .schedule-toolbar{gap:8px;margin:6px 0}.schedule-toolbar>[data-slot=tabs]{width:100%}.schedule-toolbar [data-slot=tabs-list]{display:flex;width:100%;height:auto;white-space:normal}.schedule-toolbar [data-slot=tabs-trigger]{flex:1;min-width:0;min-height:44px;height:auto;white-space:normal;padding:7px;font-size:13px}.pvz-portal .month-calendar-scroll :is(.calendar-add,.roster-add){min-height:28px}.pvz-portal .month-calendar-scroll button.calendar-shift{min-height:36px}.pvz-portal[data-slot=dialog-content]{min-height:0!important;max-height:calc(100dvh - 24px);width:calc(100vw - 20px);max-width:calc(100vw - 20px)!important;overflow-y:auto;overscroll-behavior:contain;padding:16px 16px max(16px,env(safe-area-inset-bottom));gap:12px;scroll-padding-bottom:20px}.pvz-portal [data-slot=dialog-header]{padding-right:32px;text-align:left}.pvz-portal [data-slot=dialog-close]{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;top:4px;right:4px}.pvz-portal.notification-panel{min-height:0;max-height:calc(100dvh - 100px);overflow:auto}.notification-list{max-height:50dvh}.notification-toasts{bottom:calc(80px + env(safe-area-inset-bottom));right:10px;width:calc(100vw - 20px)}.employee-tour{bottom:calc(78px + env(safe-area-inset-bottom));max-height:calc(100dvh - 170px)}.employee-tour-actions,.employee-tour-actions>div{flex-wrap:wrap}.access-screen,.pvz-portal .staff-login{margin:24px 10px;padding:20px;max-width:calc(100% - 20px)}.pvz-portal .mobile-navigation{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;z-index:40;bottom:0;left:0;right:0;gap:2px;padding:4px max(4px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));background:#fff;border-top:1px solid #c9d8d0;box-shadow:0 -3px 12px #17211e0d}.pvz-portal .mobile-navigation[hidden]{display:none}.mobile-navigation>button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;min-width:0;min-height:56px;padding:5px 2px;border-radius:10px;font-size:11px;line-height:1.2;color:#56655e;position:relative}.mobile-navigation>button[aria-current=page]{color:#174e3c;background:#e2f1e9;font-weight:700}.mobile-nav-icon{position:relative;display:flex}.mobile-nav-count{display:inline-flex;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:99px;color:#fff;background:#b42318;font-size:11px;font-weight:700;line-height:18px}.mobile-nav-icon>.mobile-nav-count{position:absolute;left:13px;top:-6px}.mobile-menu-list{display:grid;gap:6px}.mobile-menu-list>button{display:flex;align-items:center;gap:12px;text-align:left;min-height:48px;padding:10px;border-radius:8px;font-size:16px}.mobile-menu-list>button[aria-current=page]{background:#e2f1e9;color:#174e3c;font-weight:700}.mobile-menu-list>button>span:first-of-type{flex:1}.mobile-menu-list svg{flex:none}.pvz-portal :is(button,a,summary,input,select,textarea):focus-visible{outline:2px solid #255b4d;outline-offset:2px}}@media (prefers-reduced-motion:reduce){.pvz-portal *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.mobile-navigation{display:none!important}}.schedule-mobile-tools{display:none}@media screen and (max-width:700px){.pvz-portal .telegram-connect{padding:0 8px!important;margin:0 0 4px!important;background:transparent;border:0;border-radius:0}.pvz-portal .telegram-connect>summary{font-size:12px;line-height:1.4;min-height:32px;display:list-item;align-content:center;margin-left:12px;cursor:pointer}.pvz-portal .telegram-connect[open]{padding:8px!important;background:white;border:1px solid #dce4e0}.pvz-portal .city-switch,.pvz-portal.roster-view .city-switch{padding:0;margin:0 0 4px;border:0;background:transparent}.pvz-portal .city-switch label{margin:0;max-width:none;gap:6px}.pvz-portal .city-switch select{flex:1;width:0;min-width:0;max-width:100%;min-height:40px}.pvz-portal .portal-controls{display:flex;flex-wrap:nowrap;gap:6px;align-items:flex-start}.pvz-portal .portal-controls>.pvz-filters{flex:1;min-width:0;width:auto;margin:0;gap:6px}.pvz-portal .pvz-filters .period-filter{flex:1 1 100%;margin:0;max-width:100%}.pvz-portal .period-filter>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.pvz-portal .period-filter input{width:100%;min-height:40px;max-width:100%}.pvz-portal .portal-export{margin:0;flex:0 0 44px}.pvz-portal .portal-export button{width:44px;height:44px;padding:8px}.pvz-portal .portal-export button>span{display:none}.pvz-portal .schedule-toolbar{gap:4px;margin:4px 0}.pvz-portal .schedule-mobile-tools{display:flex;gap:8px;width:100%}.pvz-portal .schedule-mobile-tools>button{flex:1;min-height:36px;padding:4px 8px;font-size:13px;border:1px solid #dce4e0;border-radius:8px;background:white}.pvz-portal .schedule-extra-actions{display:none;width:100%}.pvz-portal .schedule-extra-actions[data-expanded=true]{display:block}.pvz-portal .employee-legend[data-expanded=false]{display:none}.pvz-portal .city-roster,.pvz-portal .employee-legend[data-expanded=true]{margin:4px 0}.pvz-portal .staff-schedule>h2{display:none}.pvz-portal .staff-schedule>.pvz-filters{margin:4px 0}.pvz-portal .staff-schedule>.pvz-filters>label{flex:1 1 130px;font-size:12px;gap:2px}.pvz-portal .staff-schedule>.pvz-filters>label>select{width:100%;font-size:14px;padding:6px;min-height:40px}.pvz-portal .schedule-help{font-size:12px;margin:2px 0}.pvz-portal .schedule-help>summary{min-height:28px;align-content:center;cursor:pointer}.pvz-portal .city-roster .roster-point{width:82px;min-width:82px;max-width:82px;padding:4px!important;font-size:11px;line-height:1.25}.pvz-portal .city-roster .roster-point>span{font-size:10px;line-height:1.2;margin-top:4px}}@media screen and (max-width:700px){.pvz-portal .city-roster :is(.roster-date,.roster-cell){width:86px;min-width:86px;max-width:86px}.pvz-portal .roster-table :is([data-slot=table-cell],[data-slot=table-head]){padding:3px;font-size:11px;line-height:1.2}.pvz-portal .city-roster .roster-date>strong{font-size:13px}.pvz-portal .city-roster .roster-today>strong:after{font-size:9px;line-height:1.2}.pvz-portal .city-roster .roster-shift{font-size:11px;line-height:1.2;padding:4px 3px;gap:2px;margin-bottom:3px;border-left-width:3px;border-radius:5px;min-height:44px}.pvz-portal .city-roster .roster-shift strong{font-size:11px;line-height:1.2}.pvz-portal .city-roster .roster-shift span{font-size:10px;line-height:1.2}.pvz-portal .city-roster .roster-add{font-size:10px;line-height:1.2;padding:3px 2px;min-height:28px;border-radius:4px}.pvz-portal [data-slot=tabs-content] .telegram-connect{padding:10px 14px!important;margin:8px 0!important;background:white;border:1px solid #dce4e0;border-radius:12px}.pvz-portal [data-slot=tabs-content] .telegram-connect>summary{font-size:14px}}.pvz-portal :is(.roster-shift.roster-free,.calendar-shift.free){border:2px dashed #a16207;border-left:4px solid #a16207;font-weight:700;box-shadow:0 1px 3px #42200622;cursor:pointer}.pvz-portal :is(.roster-shift.roster-free,.calendar-shift.free)>strong{font-weight:800}.pvz-portal :is(.roster-shift.roster-free,.calendar-shift.free):hover{filter:brightness(.96)}.pvz-portal :is(.roster-shift.roster-free,.calendar-shift.free):focus-visible{outline:3px solid #422006;outline-offset:2px}.pvz-portal .free-shift-action{text-decoration:underline;text-underline-offset:2px;font-weight:700}