:root{color:#142033;background:#f5f7fb;font-family:WeChat Sans Std,WeChat Sans,-apple-system,BlinkMacSystemFont,Helvetica Neue,Helvetica,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--canvas: #f5f7fb;--canvas-soft: #f6f9fd;--surface: #ffffff;--surface-strong: #fbfdff;--surface-muted: #f1f6fc;--line: #e4edf7;--line-strong: #c8d7e8;--ink: #142033;--ink-soft: #4d5d72;--muted: #65758b;--primary: #2563eb;--primary-soft: #eff6ff;--primary-line: #b9d7ff;--success: #15803d;--warning: #f59e0b;--danger: #dc2626;--day-bg: #dff3ff;--day-text: #02689f;--night-bg: #eee9ff;--night-text: #5b21b6;--rest-bg: #dcfce7;--rest-text: #047857;--special-day-bg: #fff0c2;--special-day-text: #b45309;--special-night-bg: #fde7c7;--special-night-text: #9a3412;--leave-bg: #e5e7eb;--leave-text: #475467;--legal-bg: #fee2e2;--legal-text: #dc2626;--radius-sm: 8px;--radius-md: 10px;--radius-card: 14px;--radius-sheet: 18px;--radius-pill: 999px;--shadow-card: 0 1px 2px rgba(15, 23, 42, .04);--shadow-raised: 0 7px 16px rgba(15, 23, 42, .08);--shadow-sticky: 9px 0 18px rgba(15, 23, 42, .08);--schedule-name-column: 120px;--schedule-date-column: 70px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{min-width:320px;min-height:100%;background:var(--canvas)}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden;background:var(--canvas);color:var(--ink);-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}button,input,select{font:inherit}button{-webkit-appearance:none;-moz-appearance:none;appearance:none}button:disabled{cursor:not-allowed;opacity:.62}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}input,select,textarea{-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto}#root{min-height:100vh}.app-shell{width:min(1240px,100%);min-height:100vh;margin:0 auto;padding:20px 18px 40px}.schedule-sticky-top{position:sticky;top:0;z-index:20;margin:-20px -18px 0;padding:20px 18px 1px;background:var(--canvas)}.app-chrome-sticky{background:var(--canvas)}.hero-panel,.current-user-card,.calendar-card,.schedule-card,.stats-card,.auth-card{border:1px solid var(--line);border-radius:var(--radius-card);background:rgba(255,255,255,.94);box-shadow:var(--shadow-card)}.hero-panel{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:74px;padding:12px 14px}.hero-title-group{display:flex;min-width:0;align-items:center;gap:12px}.app-mark{width:42px;height:42px;flex:0 0 42px;border-radius:12px}h1,h2{margin:0;color:var(--ink);letter-spacing:0;line-height:1.12}h1{font-size:26px;font-weight:900}h2{font-size:22px;font-weight:900}.period,.muted-label,.eyebrow{margin:0;color:var(--muted);font-size:13px;font-weight:780;line-height:1.2}.period{margin-top:4px}.sync-button,.primary-button,.ghost-button,.user-switch-button,.status-strip button{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);font-weight:850;line-height:1;cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.sync-button{min-width:76px;height:40px;padding:0 16px;border:1px solid var(--primary-line);background:var(--primary-soft);color:var(--primary);font-size:15px}.primary-button{min-height:42px;padding:0 18px;border:1px solid var(--primary);background:var(--primary);color:#fff}.ghost-button{min-height:38px;padding:0 14px;border:1px solid var(--line-strong);background:var(--surface);color:var(--primary)}.month-tabs{display:flex;gap:5px;margin-top:10px;padding:5px;overflow-x:auto;border:1px solid rgba(219,230,243,.76);border-radius:var(--radius-card);background:rgba(232,238,247,.92);scrollbar-width:none}.month-tabs::-webkit-scrollbar{display:none}.month-tab,.auth-tabs button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink-soft);font-weight:850;text-decoration:none;white-space:nowrap;cursor:pointer}.month-tab{min-width:78px;height:38px;padding:0 14px;font-size:15px}.month-tab.active,.auth-tabs button.active{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-raised)}.status-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:36px;margin-top:10px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-md);background:rgba(255,255,255,.78);color:var(--ink-soft);font-size:13px;font-weight:800}.status-strip button{min-height:28px;padding:0;border:0;background:transparent;color:var(--primary)}.auth-tabs button{min-height:34px;padding:0 16px;font-size:14px}.error-banner,.demo-notice{margin:10px 0 0;padding:10px 12px;border-radius:var(--radius-md);font-size:13px;font-weight:800;line-height:1.4}.error-banner{border:1px solid #fecaca;background:#fff1f2;color:#be123c}.demo-notice{border:1px solid var(--primary-line);background:var(--primary-soft);color:var(--primary)}.current-user-card,.calendar-card,.schedule-card,.stats-card,.auth-card{margin-top:10px;padding:14px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.section-header>div{min-width:0}.section-header h2{margin-top:2px}.user-switch-control{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.admin-badge{display:inline-flex;align-items:center;justify-content:center;height:25px;padding:0 10px;border-radius:var(--radius-pill);background:var(--primary);color:#fff;font-size:12px;font-weight:850;line-height:1}.user-switch-button{min-width:62px;height:34px;padding:0 12px;border:1px solid var(--line-strong);background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);color:var(--primary);font-size:13px;box-shadow:0 6px 14px #2563eb14}.summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:12px}.summary-item{display:flex;min-height:64px;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--radius-md);box-shadow:inset 0 1px #ffffffb8}.summary-item strong{color:var(--ink);font-size:23px;font-weight:900;line-height:1}.summary-item span{margin-top:4px;font-size:13px;font-weight:850;line-height:1}.calendar-card,.schedule-card{overflow:hidden}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekdays span{color:var(--ink-soft);font-size:13px;font-weight:850;line-height:1;text-align:center}.calendar-grid{margin-top:8px}.calendar-cell{position:relative;display:grid;aspect-ratio:1/1;min-width:0;min-height:74px;place-items:center;overflow:hidden;border:1px solid #e6edf5;border-radius:var(--radius-md);background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);color:var(--ink);cursor:pointer;touch-action:manipulation;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.calendar-cell:disabled{cursor:default;opacity:.44}.calendar-cell:focus-visible,.shift-cell:focus-visible,.user-switch-button:focus-visible,.primary-button:focus-visible,.ghost-button:focus-visible,.sync-button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.today-calendar-cell{border-color:#38a3ff;background:linear-gradient(180deg,#edf8ff 0%,#e3f4ff 100%);box-shadow:0 6px 16px #1890ff24,inset 0 1px #ffffffd1}.edited-calendar-cell{border-color:#f3bd4d;background:linear-gradient(180deg,#fffaf0 0%,#fff4df 100%)}.edited-marker,.overtime-marker{position:absolute;left:7px;width:6px;height:6px;border-radius:var(--radius-pill);z-index:2}.edited-marker{top:7px;background:var(--warning)}.overtime-marker{bottom:7px;background:var(--success)}.calendar-cell-content{display:grid;width:min(100%,72px);justify-items:center;gap:5px}.calendar-date-wrap{display:grid;grid-template-columns:minmax(18px,auto) 12px;align-items:center;justify-content:center;column-gap:3px;min-width:34px;min-height:20px}.calendar-day{min-width:18px;color:var(--ink);font-size:17px;font-weight:900;line-height:1;text-align:center}.today-calendar-cell .calendar-day{color:#0284c7}.calendar-lunar{display:flex;width:12px;max-height:25px;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;color:#8b98aa;font-size:8px;font-weight:850;line-height:1}.calendar-lunar span{display:block;width:12px;height:8px;line-height:8px;text-align:center}.calendar-lunar-holiday{color:#e05743}.calendar-shift-row{display:inline-flex;max-width:100%;align-items:center;justify-content:center;gap:3px}.calendar-shift-row .shift-chip{min-width:42px;height:20px;padding:0 7px;font-size:11px}.legal-shift-badge{display:inline-flex;min-width:14px;height:14px;align-items:center;justify-content:center;border-radius:50%;background:var(--legal-bg);color:var(--legal-text);font-size:9px;font-weight:900;line-height:1}.table-toolbar{display:grid;gap:8px}.table-toolbar-main,.table-toolbar-sub{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.table-toolbar-sub{align-items:flex-start}.table-view-switch{display:inline-flex;flex:0 0 auto;gap:2px;padding:3px;border-radius:var(--radius-pill);background:#eef4fb;box-shadow:inset 0 1px 2px #0f172a0a}.table-view-option{min-width:56px;height:30px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--ink-soft);font-size:13px;font-weight:850;cursor:pointer}.table-view-option.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-raised)}.legend{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:5px}.legend-item{display:inline-flex}.legend .shift-chip{min-width:auto;height:20px;padding:0 7px;font-size:11px}.table-shell{display:flex;width:100%;margin-top:10px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.identity-column{position:relative;z-index:2;width:var(--schedule-name-column);flex:0 0 var(--schedule-name-column);background:var(--surface);box-shadow:var(--shadow-sticky)}.table-scroll{flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.table-scroll::-webkit-scrollbar{display:none}.schedule-table{display:grid;width:max-content;min-width:max-content}.identity-row,.table-row{height:48px;border-bottom:1px solid var(--line)}.identity-row:last-child,.table-row:last-child{border-bottom:0}.table-row{display:grid;grid-auto-columns:var(--schedule-date-column);grid-auto-flow:column;width:max-content}.identity-row{display:grid;align-content:center;justify-items:center;padding:0 10px;text-align:center}.identity-row strong{overflow:hidden;max-width:100%;color:var(--ink);font-size:14px;font-weight:900;line-height:1.12;text-overflow:ellipsis;white-space:nowrap}.identity-row span{margin-top:2px;color:var(--muted);font-size:12px;font-weight:750;line-height:1}.identity-header,.table-header{background:#eef4fb}.identity-header strong{color:var(--ink-soft);font-size:13px}.identity-header span{color:var(--muted);font-size:11px;font-weight:850}.current-person-cell,.current-person-row .shift-cell{background:#fff9ec}.table-head,.shift-cell{display:flex;min-width:0;min-height:48px;align-items:center;justify-content:center;border:0;border-bottom:1px solid var(--line);border-right:0;background:var(--surface)}.schedule-table .table-row:last-child .shift-cell{border-bottom:0}.table-head{flex-direction:column;gap:3px;background:transparent;color:var(--muted);font-weight:850}.date-head strong{color:var(--ink-soft);font-size:14px;line-height:1}.date-head span{color:var(--muted);font-size:11px;font-weight:850;line-height:1}.today-date-head strong{color:var(--primary)}.shift-cell{position:relative;padding:0;cursor:pointer}.calendar-card{touch-action:pan-y}.name-view-person-name{display:inline-flex;width:54px;height:24px;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--radius-pill);font-size:11px;font-weight:850;line-height:1;text-align:center;text-overflow:ellipsis;white-space:nowrap}.edited-dot{position:absolute;top:5px;left:8px;width:6px;height:6px;border-radius:var(--radius-pill);background:var(--warning);z-index:1}.shift-chip{display:inline-flex;min-width:50px;height:28px;align-items:center;justify-content:center;padding:0 8px;border-radius:var(--radius-pill);font-size:13px;font-weight:850;line-height:1;white-space:nowrap}.shift-day,.summary-day,.name-shift-day{background:var(--day-bg);color:var(--day-text)}.shift-night,.summary-night,.name-shift-night{background:var(--night-bg);color:var(--night-text)}.shift-rest,.summary-rest,.name-shift-rest{background:var(--rest-bg);color:var(--rest-text)}.shift-special-day,.summary-special-day,.name-shift-special-day{background:var(--special-day-bg);color:var(--special-day-text)}.shift-special-night,.summary-special-night,.name-shift-special-night{background:var(--special-night-bg);color:var(--special-night-text)}.shift-leave,.summary-leave,.name-shift-leave{background:var(--leave-bg);color:var(--leave-text)}.user-picker-backdrop,.editor-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(20,32,51,.42)}.user-picker,.shift-editor{width:min(540px,100%);max-height:min(720px,100vh - 40px);overflow:hidden;border-radius:var(--radius-sheet);background:var(--surface);box-shadow:0 18px 46px #19274629}.user-picker-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--line)}.user-picker-list{display:grid;max-height:min(520px,100vh - 128px);overflow:auto}.user-picker-list button{display:flex;min-height:46px;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;border:0;border-bottom:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}.user-picker-list button.active{background:var(--surface);color:var(--ink)}.user-picker-list strong{font-size:15px;font-weight:900}.user-picker-list span{color:var(--muted);font-size:13px;font-weight:800}.picker-check{width:18px;height:18px;flex:0 0 18px;border:2px solid #4d5562;border-radius:999px;box-sizing:border-box}.user-picker-list button.active .picker-check{border:3px solid #506aa5;box-shadow:inset 0 0 0 4px #fff;background:#506aa5}.stats-picker{overflow:hidden}.shift-editor{overflow:auto;padding:22px}.shift-editor .section-header{margin-bottom:14px}.shift-editor .section-header h2{font-size:24px}.editor-group{display:grid;gap:10px;padding:14px 0;border-top:1px solid var(--line)}.editor-label{color:var(--ink-soft);font-size:16px;font-weight:850;line-height:1.2}.editor-options,.segmented-row{display:flex;flex-wrap:wrap;gap:8px}.editor-option,.segmented-row button{display:inline-flex;min-height:36px;align-items:center;justify-content:center;padding:3px;border:1px solid transparent;border-radius:var(--radius-pill);background:transparent;color:var(--ink-soft);font-weight:850;cursor:pointer}.segmented-row button{min-width:58px;padding:0 14px;background:var(--surface-muted)}.editor-option.active,.segmented-row button.active{border-color:#2563eb3d;background:var(--surface);color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.editor-option .shift-chip{min-width:64px;height:32px;font-size:15px}.editor-option:disabled{cursor:not-allowed;filter:grayscale(.2);opacity:.46}.editor-muted{color:var(--muted);font-size:14px;font-weight:800}.overtime-input-row{display:inline-flex;width:min(150px,100%);min-height:40px;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:#fbfcff;color:var(--muted);font-size:15px;font-weight:850}.overtime-input-row input{width:100%;min-width:0;border:0;outline:none;background:transparent;color:var(--ink)}.editor-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:14px;border-top:1px solid var(--line)}.auth-form input{min-height:38px;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-strong);color:var(--ink);font-weight:850;outline:none}.salary-input-item{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:850}.auth-card{max-width:720px;margin:16px auto 0}.auth-tabs{display:inline-flex;gap:4px;padding:4px;border-radius:var(--radius-md);background:var(--surface-muted)}.auth-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.auth-form label{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:850}.auth-form input,.auth-form select{padding:0 12px}.auth-form .primary-button{align-self:end}@media (hover: hover) and (pointer: fine){.sync-button:hover,.user-switch-button:hover,.ghost-button:hover,.month-tab:hover,.table-view-option:hover{transform:translateY(-1px)}.calendar-cell:not(:disabled):hover,.shift-cell:hover{background:var(--primary-soft);border-color:var(--primary-line)}}@media (max-width: 720px){:root{--schedule-name-column: 74px;--schedule-date-column: 46px}body{background:linear-gradient(180deg,#eaf3ff 0,var(--canvas) 112px,var(--canvas-soft) 260px,var(--canvas-soft) 100%)}.app-shell{padding:7px 8px 22px}.hero-panel{min-height:62px;padding:9px 10px}.hero-title-group{gap:8px}.app-mark{width:36px;height:36px;flex-basis:36px;border-radius:10px}h1{font-size:20px}h2{font-size:18px}.period,.muted-label,.eyebrow{font-size:11px}.sync-button{min-width:62px;height:34px;padding:0 12px;font-size:13px}.month-tabs{gap:4px;margin-top:8px;padding:4px;border-radius:12px}.month-tab{min-width:56px;height:31px;padding:0 10px;font-size:13px}.status-strip{min-height:30px;margin-top:8px;padding:0 10px;font-size:11px}.auth-tabs button{flex:1;min-height:30px;padding:0 10px;font-size:13px}.current-user-card,.calendar-card,.schedule-card,.stats-card,.auth-card{margin-top:8px;padding:10px;border-radius:12px}.section-header{gap:8px}.section-header h2{margin-top:1px}.user-switch-control{gap:6px}.admin-badge{height:22px;padding:0 8px;font-size:10px}.user-switch-button{min-width:52px;height:29px;padding:0 9px;font-size:12px}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.summary-item{min-height:51px;border-radius:9px}.summary-item strong{font-size:19px}.summary-item span{margin-top:4px;font-size:11px}.calendar-weekdays,.calendar-grid{gap:6px}.calendar-weekdays{margin-top:9px}.calendar-weekdays span{font-size:11px}.calendar-grid{margin-top:6px}.calendar-cell{min-height:0;border-radius:7px}.calendar-cell-content{width:100%;gap:2px;transform:translateY(1px)}.calendar-date-wrap{grid-template-columns:14px 8px;column-gap:1px;min-width:23px;min-height:13px}.calendar-day{min-width:14px;font-size:12px}.calendar-lunar{width:8px;max-height:18px;font-size:6px}.calendar-lunar span{width:8px;height:6px;line-height:6px}.calendar-shift-row{gap:2px}.calendar-shift-row .shift-chip{min-width:29px;height:15px;padding:0 4px;font-size:8px}.legal-shift-badge{min-width:10px;height:10px;font-size:7px}.edited-marker,.overtime-marker{left:4px;width:4px;height:4px}.edited-marker{top:4px}.overtime-marker{bottom:4px}.schedule-card{padding-right:0;padding-left:0;padding-bottom:0}.table-toolbar{padding:0 10px}.table-toolbar-main,.table-toolbar-sub{gap:8px}.table-view-option{min-width:44px;height:24px;font-size:11px}.legend{gap:4px}.legend .shift-chip{height:18px;padding:0 6px;font-size:9px}.table-shell{margin-top:8px;border-right:0;border-left:0;border-radius:0 0 12px 12px}.identity-row,.table-row{height:36px}.table-head,.shift-cell{min-height:36px}.identity-row{padding:0 8px}.identity-row strong{font-size:11px}.identity-row span{font-size:9px}.date-head strong{font-size:12px}.date-head span{font-size:9px}.shift-chip{min-width:34px;height:18px;padding:0 5px;font-size:9px}.name-view-person-name{width:38px;height:18px;font-size:9px}.edited-dot{top:4px;left:6px;width:4px;height:4px}.user-picker-backdrop{align-items:flex-end;padding:8px}.user-picker{border-radius:14px}.editor-backdrop{align-items:flex-end;padding:0}.shift-editor{width:100%;max-height:calc(88vh - env(safe-area-inset-bottom,0px));padding:16px 14px calc(16px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0}.shift-editor .section-header h2{font-size:20px}.editor-group{gap:8px;padding:11px 0}.editor-label{font-size:14px}.editor-options,.segmented-row{gap:7px}.editor-option .shift-chip{min-width:54px;height:28px;font-size:13px}.segmented-row button{min-width:50px;min-height:30px;padding:0 11px;font-size:13px}.overtime-input-row{min-height:36px;font-size:14px}.editor-actions{gap:8px;padding-top:12px}.editor-actions .primary-button,.editor-actions .ghost-button{min-width:78px;min-height:36px;font-size:14px}.auth-form{grid-template-columns:minmax(0,1fr)}}.current-user-title{display:flex;align-items:center;gap:8px;margin-top:1px;white-space:nowrap}.current-user-title .admin-badge.inline{min-width:auto;height:24px;padding:0 8px;font-size:14px}.user-switch-control{align-self:flex-start}.stats-entry-button{border-color:#b8d6ff;background:#eff6ff;color:#2563eb}.stats-page-mini .stats-view-tabs,.stats-page-mini .stats-filter-card,.stats-page-mini .stats-card{width:100%}@media (max-width: 720px){.current-user-card .section-header{align-items:flex-start}.current-user-title{gap:4px;font-size:18px}.current-user-title .admin-badge.inline{height:17px;padding:0 5px;font-size:8px}.user-switch-control{gap:5px;padding-top:1px}.user-switch-control .user-switch-button{min-width:45px;height:26px;padding:0 8px;font-size:11px}.stats-page-mini{padding-top:0}.stats-mini-header{min-height:54px;margin-bottom:8px}.stats-mini-header .stats-header-copy{display:grid;gap:2px}.stats-mini-header h1{font-size:20px;line-height:1.1}.stats-mini-header p{margin:0;font-size:10px;line-height:1.15}.stats-back-button,.stats-sync-button{min-width:46px;height:28px;padding:0 9px;font-size:11px}.stats-view-tabs,.stats-filter-card{margin-bottom:8px}.stats-personal-pages{margin-top:0}.stats-card:before,.current-user-card:before{height:2px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--mini-canvas: #f5f7fb;--mini-surface: #ffffff;--mini-surface-muted: #e9eef7;--mini-border: #edf2f7;--mini-ink: #172033;--mini-muted: #667085;--mini-primary: #2563eb;--schedule-name-column: 148px;--schedule-date-column: 74px}body{background:var(--mini-canvas)}.app-shell{width:100%;max-width:none;min-height:100vh;padding:18px 18px calc(88px + env(safe-area-inset-bottom,0px));background:var(--mini-canvas)}.hero-panel{min-height:74px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.hero-title-group{gap:10px}.app-mark{width:62px;height:62px;flex-basis:62px;border-radius:16px}h1{font-size:30px;font-weight:900;line-height:1.05}h2{font-size:26px;font-weight:900}.period{margin-top:7px;font-size:20px;color:var(--mini-muted)}.sync-button,.ghost-button,.user-switch-button{min-width:86px;height:48px;border:1px solid #b8d6ff;border-radius:999px;background:#eff6ff;color:var(--mini-primary);box-shadow:0 6px 14px #2563eb14;font-size:20px;font-weight:900}.month-tabs{gap:0;margin-top:12px;margin-bottom:14px;padding:6px;border:0;border-radius:14px;background:#e9eef7;box-shadow:none}.month-tab{min-width:104px;height:56px;margin-right:8px;padding:0 20px;border-radius:10px;color:#526071;font-size:24px;font-weight:900}.month-tab.active{color:var(--mini-ink);background:var(--mini-surface);box-shadow:0 8px 18px #0f172a14}.status-strip{margin-top:12px;border-color:var(--mini-border);background:rgba(255,255,255,.92)}.status-strip{min-height:40px;padding:0 14px;font-size:18px}.current-user-card,.calendar-card,.schedule-card{margin-top:12px;padding:16px;border:1px solid rgba(226,232,240,.92);border-radius:16px;background:rgba(255,255,255,.94);box-shadow:0 1px 2px #0f172a0a,inset 0 1px #ffffffc7}.current-user-card{position:relative;overflow:hidden}.current-user-card:before{content:"";position:absolute;top:0;right:0;left:0;height:3px;background:linear-gradient(90deg,#2563eb 0%,#14b8a6 62%,#f59e0b 100%)}.section-header h2{font-size:32px;line-height:1.12}.muted-label{font-size:20px;font-weight:800}.admin-badge{height:28px;padding:0 10px;font-size:18px}.user-switch-control{gap:10px}.summary-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:16px}.summary-item{min-height:78px;border-radius:12px}.summary-item strong{font-size:26px}.summary-item span{margin-top:4px;font-size:20px}.calendar-card{overflow:hidden}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekdays{margin-top:14px}.calendar-weekdays span{color:#667085;font-size:20px;font-weight:900}.calendar-grid{margin-top:10px}.calendar-cell{aspect-ratio:auto;height:88px;min-height:0;border:1px solid #edf2f7;border-radius:10px;background:#fbfcff;box-shadow:none}.calendar-cell-content{display:flex;width:100%;min-height:58px;flex-direction:column;align-items:center;justify-content:center;gap:0;transform:none}.calendar-date-wrap{display:flex;width:68px;min-height:30px;align-items:center;justify-content:center;margin-bottom:5px}.calendar-lunar-spacer{width:22px;flex:0 0 22px}.calendar-day{width:24px;min-width:24px;flex:0 0 24px;font-size:21px;line-height:1.15}.calendar-lunar{display:flex;width:22px;max-height:none;flex:0 0 22px;flex-direction:column;align-items:center;overflow:hidden;font-size:13px;font-weight:800;line-height:1}.calendar-lunar span{width:22px;height:13px;margin-bottom:2px;font-size:13px;line-height:13px}.calendar-lunar span:last-child{margin-bottom:0}.calendar-shift-row{gap:4px}.calendar-shift-row .shift-chip{min-width:54px;height:32px;padding:0 8px;font-size:18px}.legal-shift-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:#ef4444;color:#fff;font-size:17px;font-weight:900;line-height:1}.edited-marker{top:8px;left:8px;width:10px;height:10px}.overtime-marker{bottom:8px;left:8px;width:10px;height:10px}.schedule-card{padding:0}.table-toolbar{display:flex;flex-direction:column;gap:0;padding:14px 14px 12px;border-bottom:1px solid #edf2f7;background:#ffffff}.table-toolbar-main,.table-toolbar-sub{display:flex;align-items:center;justify-content:space-between}.table-toolbar-main h2{font-size:26px}.table-toolbar-sub{height:32px;margin-top:4px;overflow:hidden}.table-toolbar-sub .muted-label{flex:0 0 auto;font-size:20px;white-space:nowrap}.legend{flex-wrap:nowrap;gap:8px;height:32px;overflow:hidden}.legend .shift-chip{min-width:42px;height:24px;padding:0 7px;font-size:14px}.table-view-switch{padding:4px}.table-view-option{min-width:72px;height:40px;font-size:20px}.table-shell{margin-top:0;border:0;border-radius:0}.identity-column{width:var(--schedule-name-column);flex-basis:var(--schedule-name-column);box-shadow:8px 0 16px #19274614}.table-scroll{width:calc(100% - var(--schedule-name-column))}.identity-row,.table-row{height:68px;border-bottom:1px solid #edf2f7}.identity-header,.table-header{height:72px;background:#e9eef7}.identity-row{padding:8px 12px}.identity-row strong{font-size:21px}.identity-row span{margin-top:5px;font-size:18px}.identity-header strong,.date-head strong{font-size:21px}.identity-header span,.date-head span{font-size:18px}.table-row{grid-auto-columns:var(--schedule-date-column)}.table-head,.shift-cell{min-height:68px}.table-header .table-head{min-height:72px}.shift-chip{min-width:54px;height:32px;padding:0 8px;font-size:18px}.name-view-person-name{width:62px;height:32px;font-size:18px}.table-shift-wrap{display:inline-flex;align-items:center;justify-content:center;gap:4px;max-width:100%}.edited-dot{position:absolute;left:8px;width:8px;height:8px;border-radius:999px;z-index:2}.edited-dot{top:8px;background:#f59e0b}.editor-backdrop{align-items:flex-end;justify-content:center;padding:0;background:rgba(23,32,51,.46)}.shift-editor{width:100%;max-width:620px;max-height:min(88vh,720px);padding:26px;border-radius:18px 18px 0 0;background:#ffffff}.editor-group{gap:14px;padding:18px 0}.editor-label{font-size:22px}.editor-option .shift-chip{min-width:92px;height:44px;font-size:22px}.segmented-row button{min-width:72px;height:42px;font-size:22px}.overtime-input-row{min-height:48px;font-size:22px}.editor-actions .primary-button,.editor-actions .ghost-button{min-width:104px;height:48px;font-size:22px}@media (max-width: 720px){:root{--schedule-name-column: 78px;--schedule-date-column: 48px}body{background:var(--mini-canvas)}.app-shell{padding:8px 8px calc(34px + env(safe-area-inset-bottom,0px));background:radial-gradient(circle at 12% 0%,rgba(37,99,235,.1),transparent 38%),radial-gradient(circle at 98% 2%,rgba(20,184,166,.08),transparent 34%),linear-gradient(180deg,#eef4fb 0%,var(--mini-canvas) 186px,var(--mini-canvas) 100%)}.hero-panel{min-height:54px;padding:0}.hero-title-group{gap:8px}.app-mark{width:34px;height:34px;flex-basis:34px;border-radius:9px}h1,h2{font-size:18px}.period{margin-top:3px;font-size:10px}.sync-button{min-width:54px;height:30px;padding:0 10px;font-size:12px}.month-tabs{margin-top:8px;margin-bottom:8px;padding:4px;border-radius:10px}.month-tab{min-width:54px;height:31px;margin-right:4px;padding:0 8px;border-radius:7px;font-size:12px}.status-strip{min-height:30px;margin-top:8px;padding:0 10px;font-size:10px}.current-user-card,.calendar-card,.schedule-card{margin-top:8px;border-radius:10px}.current-user-card,.calendar-card{padding:10px}.section-header h2{font-size:18px}.muted-label{font-size:10px}.admin-badge{height:18px;padding:0 6px;font-size:9px}.user-switch-control{gap:6px}.user-switch-button{min-width:46px;height:27px;padding:0 8px;font-size:11px}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.summary-item{min-height:50px;border-radius:7px}.summary-item strong{font-size:20px}.summary-item span{margin-top:3px;font-size:11px}.calendar-weekdays,.calendar-grid{gap:5px}.calendar-weekdays{margin-top:9px}.calendar-weekdays span{font-size:11px}.calendar-grid{margin-top:6px}.calendar-cell{height:auto;aspect-ratio:1/1;border-radius:7px}.calendar-cell-content{min-height:0}.calendar-date-wrap{width:34px;min-height:16px;margin-bottom:2px}.calendar-lunar-spacer{width:8px;flex-basis:8px}.calendar-day{width:15px;min-width:15px;flex-basis:15px;font-size:13px}.calendar-lunar{width:9px;flex-basis:9px;font-size:6px}.calendar-lunar span{width:9px;height:6px;margin-bottom:0;font-size:6px;line-height:6px}.calendar-shift-row{gap:2px}.calendar-shift-row .shift-chip{min-width:29px;height:15px;padding:0 4px;font-size:8px}.legal-shift-badge{min-width:10px;height:10px;padding:0;font-size:7px}.edited-marker,.overtime-marker{left:4px;width:4px;height:4px}.edited-marker{top:4px}.overtime-marker{bottom:4px}.schedule-card{padding:0}.table-toolbar{padding:10px 10px 8px}.table-toolbar-main h2{font-size:18px}.table-view-option{min-width:44px;height:26px;font-size:11px}.table-toolbar-sub{height:24px;margin-top:4px}.table-toolbar-sub .muted-label{font-size:10px}.legend{gap:4px;height:22px}.legend .shift-chip{min-width:auto;height:18px;padding:0 6px;font-size:9px}.identity-row,.table-row{height:38px}.identity-header,.table-header{height:42px}.identity-row{padding:0 5px}.identity-row strong{font-size:11px}.identity-row span{margin-top:2px;font-size:9px}.identity-header strong,.date-head strong{font-size:11px}.identity-header span,.date-head span{font-size:9px}.table-head,.shift-cell{min-height:38px}.table-header .table-head{min-height:42px}.shift-chip{min-width:34px;height:18px;padding:0 5px;font-size:9px}.name-view-person-name{width:38px;height:18px;font-size:9px}.table-shift-wrap{gap:2px}.edited-dot{left:5px;width:4px;height:4px}.edited-dot{top:4px}.shift-editor{max-width:none;max-height:calc(88vh - env(safe-area-inset-bottom,0px));padding:16px 14px calc(16px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0}.shift-editor .section-header h2{font-size:20px}.editor-group{gap:8px;padding:11px 0}.editor-label{font-size:14px}.editor-option .shift-chip{min-width:54px;height:28px;font-size:13px}.segmented-row button{min-width:50px;height:30px;font-size:13px}.overtime-input-row{min-height:36px;font-size:14px}.editor-actions .primary-button,.editor-actions .ghost-button{min-width:78px;height:36px;font-size:14px}}@media (min-width: 900px){.app-shell{max-width:1280px;margin:0 auto;padding-right:32px;padding-left:32px}.desktop-layout{display:grid;grid-template-columns:minmax(520px,560px) minmax(0,1fr);gap:20px;align-items:start}.calendar-cell{height:86px}.calendar-date-wrap{width:64px}.calendar-lunar-spacer,.calendar-lunar,.calendar-lunar span{width:20px}.calendar-day{width:22px;min-width:22px;flex-basis:22px;font-size:19px}.calendar-lunar,.calendar-lunar span{font-size:11px;line-height:11px}.calendar-lunar span{height:11px}.calendar-shift-row .shift-chip{min-width:42px;height:24px;font-size:13px}.legal-shift-badge{min-width:20px;height:20px;padding:0 5px;font-size:11px}:root{--schedule-name-column: 156px;--schedule-date-column: 82px}.identity-row,.table-row{height:54px}.identity-header,.table-header{height:60px}.identity-row strong,.identity-header strong,.date-head strong{font-size:16px}.identity-row span,.identity-header span,.date-head span{font-size:13px}.table-head,.shift-cell{min-height:54px}.table-header .table-head{min-height:60px}.shift-chip{min-width:42px;height:24px;font-size:13px}.name-view-person-name{width:66px;height:28px;font-size:13px}}.stats-page-mini{width:100%;min-height:100vh;color:#172033}.stats-sticky-top{position:sticky;top:0;z-index:22;padding-bottom:1px;background:var(--canvas)}.stats-mini-header{display:flex;min-height:64px;align-items:center;gap:14px;margin-bottom:18px}.stats-mini-header .stats-header-copy{min-width:0;flex:1}.stats-mini-header h1{font-size:32px;font-weight:900;line-height:1.2}.stats-mini-header p{margin:4px 0 0;color:#667085;font-size:22px;line-height:1.25}.stats-back-button,.stats-sync-button{display:inline-flex;min-width:72px;height:44px;align-items:center;justify-content:center;padding:0 18px;border:1px solid #cbdcf2;border-radius:999px;background:#eff6ff;color:#2563eb;box-shadow:0 6px 14px #2563eb14;font-size:17px;font-weight:900;line-height:1}.stats-sync-button{margin-left:auto}.stats-sync-button.loading{color:#526071;background:#f3f6fa}.stats-view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:6px;margin:0 0 12px;border:1px solid #edf2f7;border-radius:14px;background:#ffffff;box-shadow:0 1px 2px #0f172a0a,inset 0 1px #ffffffc7}.stats-view-tab{display:flex;height:48px;align-items:center;justify-content:center;border:0;border-radius:10px;background:transparent;color:#667085;font-size:22px;font-weight:900}.stats-view-tab.active{background:#2563eb;color:#fff;box-shadow:none}.stats-filter-card{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:14px;margin-bottom:12px;border:1px solid #edf2f7;border-radius:16px;background:#ffffff;box-shadow:0 1px 2px #0f172a0a,inset 0 1px #ffffffc7}.stats-filter-card.has-person-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-filter-item{display:flex;min-height:74px;flex-direction:column;justify-content:center;padding:0 16px;border-radius:12px;background:#f6f9fd}.stats-filter-label{margin-bottom:6px;color:#667085;font-size:19px;line-height:1.2}.stats-filter-select,.stats-filter-trigger,.stats-filter-value{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;min-height:30px;padding:0;overflow:hidden;border:0;outline:none;background:transparent;color:#172033;font-size:24px;font-weight:900;line-height:1.2;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.stats-filter-select::-ms-expand{display:none}.stats-page-indicator{display:flex;height:24px;align-items:center;justify-content:center;gap:10px;margin:-2px 0 10px}.stats-page-indicator-dot{width:10px;height:10px;padding:0;border:0;border-radius:999px;background:#cbd5e1;opacity:.85}.stats-page-indicator-dot.active{width:28px;background:#2563eb;opacity:1}.stats-personal-pages{position:relative;margin:0 -10px;overflow:hidden;touch-action:pan-y;transition:height .22s cubic-bezier(.22,1,.36,1)}.stats-personal-track{position:absolute;inset:0 auto auto 0;display:flex;align-items:flex-start;width:200%;will-change:transform;transition:transform .26s cubic-bezier(.22,1,.36,1)}.stats-personal-page{width:50%;min-width:0;align-self:flex-start;padding:0 10px}.stats-content-inner{padding-bottom:28px}.stats-card{position:relative;overflow:hidden;padding:18px;margin-bottom:12px;border:1px solid #edf2f7;border-radius:16px;background:#ffffff;box-shadow:0 1px 2px #0f172a0a,inset 0 1px #ffffffc7}.stats-card:before{content:"";position:absolute;top:0;right:0;left:0;height:3px;background:linear-gradient(90deg,#2563eb 0%,#14b8a6 62%,#f59e0b 100%)}.stats-section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.stats-section-title{margin:0;color:#172033;font-size:28px;font-weight:900;line-height:1.2}.stats-person-label,.stats-section-hint{color:#667085;font-size:21px;font-weight:800;line-height:1.2}.stats-person-label{display:block;margin-bottom:2px}.stats-overview-table,.stats-daily-list{overflow:hidden;border:1px solid #edf2f7;border-radius:12px}.stats-overview-row{display:grid;grid-template-columns:112px minmax(0,1fr) 92px 92px;min-height:58px;align-items:center;padding:0 14px;border-bottom:1px solid #edf2f7;background:#ffffff}.stats-overview-row:last-child{border-bottom:0}.stats-overview-header{min-height:48px;background:#f6f9fd;color:#667085;font-size:19px;font-weight:900}.stats-overview-header span{text-align:center}.stats-overview-header span:first-child{grid-column:1}.stats-overview-header span:nth-child(2){grid-column:3}.stats-overview-header span:nth-child(3){grid-column:4}.stats-overview-name{display:flex;justify-content:center}.stats-overview-tag,.stats-shift{display:inline-flex;min-width:58px;height:32px;align-items:center;justify-content:center;padding:0 10px;border-radius:999px;font-size:18px;font-weight:900;line-height:1;white-space:nowrap}.stats-overview-value{color:#172033;font-size:22px;font-weight:900;text-align:center}.stats-overview-value.active{color:#15803d}.stats-shift-day,.stats-overtime-weekday{background:var(--day-bg);color:var(--day-text)}.stats-shift-night{background:var(--night-bg);color:var(--night-text)}.stats-shift-rest{background:var(--rest-bg);color:var(--rest-text)}.stats-shift-special-day{background:var(--special-day-bg);color:var(--special-day-text)}.stats-shift-special-night,.stats-overtime-special{background:var(--special-night-bg);color:var(--special-night-text)}.stats-shift-legal,.stats-overtime-legal{background:var(--legal-bg);color:var(--legal-text)}.stats-shift-leave{background:var(--leave-bg);color:var(--leave-text)}.stats-bar-chart{display:grid;min-height:230px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:18px;padding:10px 6px 0}.stats-bar-item{display:grid;grid-template-rows:30px 150px 30px;align-items:end;justify-items:center}.stats-bar-value{color:#98a2b3;font-size:19px;font-weight:900;line-height:1}.stats-bar-value.active{color:#15803d}.stats-bar-track{position:relative;width:42px;height:150px;overflow:hidden;border-radius:999px;background:#f3f6fa}.stats-bar-fill{position:absolute;right:0;bottom:0;left:0;min-height:0;border-radius:999px 999px 0 0}.stats-bar-fill.stats-overtime-weekday{background:#8bd8ff}.stats-bar-fill.stats-overtime-special{background:#f9ad65}.stats-bar-fill.stats-overtime-legal{background:#f87171}.stats-bar-label{margin-top:10px;color:#5b6678;font-size:20px;font-weight:900}.salary-title-row{align-items:center;margin-bottom:14px}.salary-save-status{margin-left:auto;color:#667085;font-size:18px;font-weight:900}.salary-save-status.pending,.salary-save-status.saving{color:#2563eb}.salary-save-status.saved{color:#15803d}.salary-save-status.error{color:#b42318}.salary-section{padding:14px 0 16px;border-top:1px solid #edf2f7}.salary-title-row+.salary-section{padding-top:0;border-top:0}.salary-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.salary-block-title{margin:0;color:#172033;font-size:21px;font-weight:900}.salary-section-total{color:#2563eb;font-size:18px;font-weight:900;white-space:nowrap}.salary-section-total.deduction{color:#b45309}.salary-input-grid,.salary-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.salary-basic-input-grid{display:flex;gap:12px}.salary-basic-input-grid .salary-input-item{min-width:0;flex:1 1 0}.salary-basic-input-grid .salary-input-box{border-color:#c4d3e5;background:#ffffff;box-shadow:0 0 0 1px #c4d3e538}.salary-deduction-grid,.salary-final-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.salary-input-label,.salary-result-label,.salary-summary-label{display:block;margin-bottom:7px;overflow:hidden;color:#667085;font-size:18px;font-weight:900;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.salary-input-box{display:flex;width:100%;box-sizing:border-box;min-height:54px;align-items:center;gap:4px;overflow:hidden;padding:0 12px;border:1px solid #d9e2ef;border-radius:10px;background:#f8fbff}.salary-input-prefix{color:#98a2b3;font-size:20px;font-weight:900}.salary-input{width:0;min-width:0;flex:1;max-width:100%;border:0;outline:none;background:transparent;color:#172033;font-size:20px;font-weight:900}.salary-rate-line{display:block;margin-top:10px;color:#667085;font-size:18px;font-weight:900}.salary-result-item,.salary-summary-item{display:flex;min-height:70px;flex-direction:column;justify-content:center;padding:0 10px;border-radius:10px;background:#f6f9fd}.salary-result-item.legal{background:#fff1f2}.salary-result-item.deduction{background:#fff7ed}.salary-result-value,.salary-summary-value{overflow:hidden;color:#172033;font-size:20px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.salary-summary-item{min-height:78px}.salary-summary-item.primary{background:#eff6ff}.salary-summary-item.primary .salary-summary-value{color:#2563eb}.stats-daily-row{display:grid;grid-template-columns:minmax(0,1fr) 96px 88px 44px;min-height:64px;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid #edf2f7;background:#ffffff}.stats-daily-row:last-child{border-bottom:0}.stats-daily-header{min-height:48px;background:#f6f9fd;color:#667085;font-size:19px;font-weight:900}.stats-daily-date{color:#172033;font-size:24px;font-weight:900}.stats-daily-shift-cell{display:flex;justify-content:center}.stats-shift.has-legal{position:relative}.stats-legal-shift-badge{position:absolute;top:50%;right:calc(100% + 4px);display:inline-flex;min-width:28px;height:28px;align-items:center;justify-content:center;padding:0 8px;border-radius:999px;background:#ef4444;color:#fff;font-size:17px;font-weight:900;transform:translateY(-50%)}.stats-daily-pay,.stats-daily-overtime{color:#172033;font-size:20px;font-weight:900;text-align:right}.stats-daily-pay{display:inline-flex;min-width:72px;height:30px;align-items:center;justify-content:center;border-radius:999px;background:#ecfdf3;color:#15803d;font-size:18px}.stats-daily-pay.placeholder{visibility:hidden}.stats-daily-pay.special{background:#fff7ed;color:#c2410c}.stats-daily-pay.legal{background:#ef4444;color:#fff}.stats-daily-overtime{color:#98a2b3}.stats-daily-overtime.active{color:#15803d}.stats-team-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stats-team-overview-item{display:flex;min-height:84px;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;background:#f6f9fd}.stats-team-overview-item strong{color:#172033;font-size:28px;font-weight:900}.stats-team-overview-item span{margin-top:6px;color:#667085;font-size:20px;font-weight:900}.stats-team-legend{display:flex;gap:8px;margin-bottom:16px}.stats-team-legend-item{display:inline-flex;height:28px;align-items:center;justify-content:center;padding:0 12px;border-radius:999px;font-size:17px;font-weight:900}.stats-team-legend-item.weekday{background:#dff3ff;color:#0369a1}.stats-team-legend-item.special{background:#fde7c7;color:#9a3412}.stats-team-legend-item.legal{background:#fee2e2;color:#dc2626}.stats-team-chart{display:flex;flex-direction:column;gap:14px}.stats-team-chart-row{display:grid;grid-template-columns:40px 88px minmax(0,1fr) 58px;align-items:center;gap:10px}.stats-ranking-rank{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:999px;background:#f3f6fa;color:#667085;font-size:18px;font-weight:900}.stats-ranking-rank.top{background:#fff0c2;color:#b45309}.stats-team-chart-name{display:block;overflow:hidden;color:#172033;font-size:21px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.stats-team-chart-group{display:block;margin-top:4px;color:#667085;font-size:17px;font-weight:900}.stats-team-chart-track{display:flex;height:28px;overflow:hidden;border-radius:999px;background:#f3f6fa}.stats-team-chart-segment{display:flex;align-items:center;justify-content:center}.stats-team-chart-segment span{overflow:hidden;max-width:100%;padding:0 4px;color:#fff;font-size:14px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.stats-team-chart-segment.stats-overtime-weekday{background:#8bd8ff}.stats-team-chart-segment.stats-overtime-special{background:#f9ad65}.stats-team-chart-segment.stats-overtime-legal{background:#f87171}.stats-team-chart-total{color:#172033;font-size:20px;font-weight:900;text-align:right}.stats-team-chart-segment.stats-overtime-weekday,.stats-bar-fill.stats-overtime-weekday{background:#8bd8ff}.stats-team-chart-segment.stats-overtime-special,.stats-bar-fill.stats-overtime-special{background:#f9ad65}.stats-team-chart-segment.stats-overtime-legal,.stats-bar-fill.stats-overtime-legal{background:#f87171}@media (max-width: 720px){.stats-mini-header{min-height:46px;gap:8px;margin-bottom:8px}.stats-mini-header h1{font-size:20px}.stats-mini-header p{margin-top:2px;font-size:10px}.stats-back-button,.stats-sync-button{min-width:48px;height:28px;padding:0 10px;font-size:12px}.stats-view-tabs{gap:4px;padding:4px;margin-bottom:8px;border-radius:10px}.stats-view-tab{height:30px;border-radius:7px;font-size:13px}.stats-filter-card{gap:8px;padding:10px;margin-bottom:8px;border-radius:10px}.stats-filter-card.has-person-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-filter-item{min-height:50px;padding:0 10px;border-radius:8px}.stats-filter-label{margin-bottom:3px;font-size:10px}.stats-filter-select,.stats-filter-trigger,.stats-filter-value{font-size:15px}.stats-page-indicator{height:18px;margin:-2px 0 6px}.stats-page-indicator-dot{width:6px;height:6px}.stats-page-indicator-dot.active{width:20px}.stats-personal-pages{margin:0 -5px}.stats-personal-page{padding:0 5px}.stats-content-inner{padding-bottom:18px}.stats-card{padding:12px;margin-bottom:8px;border-radius:10px}.stats-section-title-row{margin-bottom:10px}.stats-section-title{font-size:18px}.stats-person-label,.stats-section-hint{font-size:11px}.stats-overview-row{grid-template-columns:72px minmax(0,1fr) 52px 52px;min-height:42px;padding:0 8px}.stats-overview-header{min-height:34px;font-size:11px}.stats-overview-tag,.stats-shift{min-width:38px;height:20px;padding:0 6px;font-size:10px}.stats-overview-value{font-size:14px}.stats-bar-chart{min-height:154px;gap:10px;padding-top:6px}.stats-bar-item{grid-template-rows:22px 100px 22px}.stats-bar-track{width:28px;height:100px}.stats-bar-value,.stats-bar-label{font-size:11px}.salary-section{padding:10px 0 11px}.salary-section-head{margin-bottom:8px}.salary-block-title{font-size:14px}.salary-section-total,.salary-save-status{font-size:11px}.salary-input-grid,.salary-result-grid{gap:6px}.salary-input-label,.salary-result-label,.salary-summary-label{margin-bottom:5px;font-size:10px}.salary-input-box{min-height:38px;padding:0 8px;border-radius:7px}.salary-input-prefix,.salary-input,.salary-result-value,.salary-summary-value{font-size:13px}.salary-rate-line{margin-top:8px;font-size:11px}.salary-result-item,.salary-summary-item{min-height:46px;padding:0 8px;border-radius:7px}.stats-daily-row{grid-template-columns:minmax(0,1fr) 54px 58px 34px;min-height:44px;gap:6px;padding:0 8px}.stats-daily-header{min-height:34px;font-size:11px}.stats-daily-date,.stats-daily-pay,.stats-daily-overtime{font-size:12px}.stats-daily-pay{min-width:48px;height:20px;font-size:10px}.stats-legal-shift-badge{min-width:14px;height:14px;padding:0;font-size:9px}.stats-team-overview-grid{gap:6px}.stats-team-overview-item{min-height:56px;border-radius:8px}.stats-team-overview-item strong{font-size:18px}.stats-team-overview-item span,.stats-team-legend-item,.stats-team-chart-group{font-size:10px}.stats-team-chart-row{grid-template-columns:26px 60px minmax(0,1fr) 42px;gap:7px;min-height:38px}.stats-ranking-rank{width:22px;height:22px;font-size:11px}.stats-team-chart-name,.stats-team-chart-total{font-size:12px}.stats-team-chart-track{height:20px}.stats-team-chart-segment span{font-size:9px}}@media (max-width: 720px){:root{--schedule-name-column: 80px;--schedule-date-column: 48px}body{background:var(--canvas)}.app-shell{width:100%;max-width:430px;margin:0 auto;padding:8px 8px calc(22px + env(safe-area-inset-bottom,0px));background:var(--canvas)}.hero-panel{min-height:46px}.hero-title-group{gap:7px}.app-mark{width:32px;height:32px;flex-basis:32px;border-radius:8px}h1{font-size:18px;line-height:1.05}.period{margin-top:2px;font-size:10px;line-height:1.1}.sync-button{min-width:52px;height:28px;padding:0 10px;font-size:12px}.month-tabs{margin:8px 0;padding:4px;border-radius:10px}.month-tab{min-width:56px;height:31px;margin-right:4px;padding:0 8px;border-radius:7px;font-size:12px}.status-strip{min-height:29px;margin-top:8px;padding:0 10px;border-radius:8px;font-size:10px}.current-user-card,.calendar-card,.schedule-card,.stats-card,.stats-view-tabs,.stats-filter-card{border-radius:10px}.current-user-card,.calendar-card{margin-top:8px;padding:10px}.current-user-card:before,.stats-card:before{height:2px}.current-user-card .section-header{align-items:flex-start}.muted-label{font-size:10px;line-height:1.1}.current-user-title,.section-header h2{gap:4px;font-size:18px;line-height:1.1}.current-user-title .admin-badge.inline,.admin-badge{height:16px;padding:0 5px;font-size:8px}.user-switch-control{gap:6px}.user-switch-button{min-width:44px;height:26px;padding:0 8px;font-size:11px}.summary-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:9px}.summary-item{min-height:42px;border-radius:6px}.summary-item strong{font-size:17px}.summary-item span{margin-top:2px;font-size:10px}.calendar-card .section-header{margin-bottom:8px}.calendar-weekdays,.calendar-grid{gap:5px}.calendar-weekdays{margin-top:0}.calendar-weekdays span{font-size:11px;line-height:1}.calendar-grid{margin-top:6px}.calendar-cell{aspect-ratio:1/1;height:auto;min-height:0;border-radius:7px}.calendar-cell-content{display:grid;width:100%;min-height:0;place-items:center;gap:1px}.calendar-date-wrap{display:grid;width:34px;min-width:34px;min-height:16px;grid-template-columns:8px 15px 9px;align-items:center;justify-content:center;margin:0}.calendar-lunar-spacer{display:block;width:8px}.calendar-day{width:15px;min-width:15px;font-size:12px;line-height:1}.calendar-lunar{width:9px;max-height:16px;font-size:6px;line-height:1}.calendar-lunar span{width:9px;height:6px;font-size:6px;line-height:6px}.calendar-shift-row{gap:1px;min-height:15px}.calendar-shift-row .shift-chip{min-width:29px;height:14px;padding:0 4px;font-size:8px}.legal-shift-badge{min-width:10px;height:10px;padding:0;font-size:7px}.edited-marker,.overtime-marker{left:4px;width:4px;height:4px}.edited-marker{top:4px}.overtime-marker{bottom:4px}.schedule-card{margin-top:8px;padding:0;border-radius:10px}.table-toolbar{padding:10px 10px 8px}.table-toolbar-main h2{font-size:18px}.table-view-switch{padding:3px}.table-view-option{min-width:44px;height:24px;font-size:10px}.table-toolbar-sub{height:23px;margin-top:4px}.table-toolbar-sub .muted-label{font-size:10px}.legend{gap:4px;height:20px}.legend .shift-chip{height:16px;padding:0 5px;font-size:8px}.table-shell{margin-top:0}.identity-row,.table-row{height:34px}.identity-header,.table-header{height:40px}.identity-row{padding:0 5px}.identity-row strong{font-size:11px;line-height:1.05}.identity-row span{margin-top:2px;font-size:9px}.identity-header strong,.date-head strong{font-size:11px}.identity-header span,.date-head span{font-size:9px}.table-head,.shift-cell{min-height:34px}.table-header .table-head{min-height:40px}.shift-chip{min-width:34px;height:17px;padding:0 5px;font-size:8px}.name-view-person-name{width:38px;height:17px;font-size:8px}.table-shift-wrap{gap:1px}.edited-dot{left:5px;width:4px;height:4px}.edited-dot{top:4px}.stats-page-mini{width:100%;min-height:auto}.stats-mini-header{min-height:44px;gap:8px;margin-bottom:8px}.stats-mini-header h1{font-size:18px}.stats-mini-header p{margin-top:2px;font-size:10px}.stats-back-button,.stats-sync-button{min-width:48px;height:28px;padding:0 10px;font-size:12px}.stats-view-tabs{gap:4px;padding:4px;margin-bottom:8px}.stats-view-tab{height:30px;border-radius:7px;font-size:13px}.stats-filter-card{gap:6px;padding:8px;margin-bottom:6px}.stats-filter-item{min-height:42px;padding:0 8px;border-radius:8px}.stats-filter-label{margin-bottom:3px;font-size:10px}.stats-filter-select,.stats-filter-trigger,.stats-filter-value{font-size:15px}.stats-page-indicator{height:12px;margin:-2px 0 4px}.stats-page-indicator-dot{width:5px;height:5px}.stats-page-indicator-dot.active{width:18px}.stats-personal-pages{margin:0;overflow:hidden}.stats-personal-track{display:flex;width:200%}.stats-personal-page{width:50%;padding:0}.stats-content-inner{padding-bottom:8px}.stats-card{padding:10px;margin-bottom:7px}.salary-card{padding:10px}.stats-section-title-row{margin-bottom:7px}.stats-section-title{font-size:16px}.stats-person-label,.stats-section-hint{font-size:10px}.stats-overview-row{grid-template-columns:minmax(0,1fr) 52px 52px;min-height:36px;padding:0 7px}.stats-overview-header{grid-template-columns:minmax(0,1fr) 52px 52px;min-height:30px;font-size:10px}.stats-overview-header span:first-child,.stats-overview-header span:nth-child(2),.stats-overview-header span:nth-child(3){grid-column:auto}.stats-overview-name{justify-content:center}.stats-overview-tag,.stats-shift{min-width:34px;height:18px;padding:0 5px;font-size:9px}.stats-overview-value{font-size:13px}.stats-bar-chart{min-height:122px;gap:8px;padding-top:2px}.stats-bar-item{grid-template-rows:18px 78px 18px}.stats-bar-track{width:23px;height:78px}.stats-bar-value,.stats-bar-label{font-size:10px}.salary-section{padding:7px 0 8px}.salary-section-head{margin-bottom:5px}.salary-block-title{font-size:12px}.salary-section-total,.salary-save-status{font-size:10px}.salary-input-grid,.salary-result-grid,.salary-deduction-grid,.salary-final-grid{gap:5px}.salary-input-label,.salary-result-label,.salary-summary-label{margin-bottom:3px;font-size:9px}.salary-input-box{min-height:29px;padding:0 6px;border:1px solid #e4edf7;border-radius:6px;background:#f6f9fd;box-shadow:none}.salary-input-item .salary-input{min-height:0;padding:0;border:0!important;border-radius:0;outline:none;background:transparent;box-shadow:none}.salary-input-prefix,.salary-input,.salary-result-value,.salary-summary-value{font-size:12px}.salary-rate-line{margin-top:5px;font-size:10px}.salary-result-item,.salary-summary-item{min-height:36px;padding:0 6px;border-radius:6px}.stats-daily-row{grid-template-columns:minmax(0,1fr) 50px 54px 32px;min-height:36px;gap:5px;padding:0 7px}.stats-daily-header{min-height:30px;font-size:10px}.stats-daily-date,.stats-daily-pay,.stats-daily-overtime{font-size:11px}.stats-daily-pay{min-width:44px;height:18px;font-size:9px}.stats-legal-shift-badge{min-width:12px;height:12px;padding:0;font-size:8px}}@media (min-width: 721px){.app-shell{max-width:852px}.stats-personal-pages{margin:0;overflow:hidden}.stats-personal-track{display:flex;width:200%}.stats-personal-page{width:50%;padding:0}.stats-content-inner{padding-bottom:10px}}@media (max-width: 720px){:root{--schedule-name-column: 76px;--schedule-date-column: 46px}.app-shell{padding:7px 7px calc(18px + env(safe-area-inset-bottom,0px))}.schedule-sticky-top{top:0;margin:-7px -7px 0;padding:7px 7px 1px;background:var(--canvas)}.app-chrome-sticky{background:var(--canvas)}.stats-sticky-top{top:0;margin:-7px -7px 0;padding:7px 7px 1px;background:var(--canvas)}.hero-panel,.month-tabs,.status-strip,.current-user-card,.calendar-card,.schedule-card,.stats-view-tabs,.stats-filter-card,.stats-card,.auth-card,.user-picker,.shift-editor{border-radius:9px;box-shadow:0 1px 2px #0f172a0a}.hero-panel{min-height:40px}.app-mark{width:28px;height:28px;flex-basis:28px;border-radius:7px}h1,.stats-mini-header h1{font-size:16px}h2,.section-header h2,.table-toolbar-main h2,.stats-section-title,.salary-card .stats-section-title{font-size:15px;line-height:1.1}.period,.stats-mini-header p{font-size:9px}.sync-button,.stats-back-button,.stats-sync-button,.user-switch-button,.ghost-button{min-width:44px;height:25px;padding:0 8px;font-size:10px}.month-tabs{margin:7px 0;padding:3px}.month-tab{min-width:52px;height:28px;margin-right:3px;border-radius:6px;font-size:11px}.status-strip{min-height:26px;margin-top:7px;padding:0 8px;font-size:9px}.current-user-card,.calendar-card,.auth-card,.stats-filter-card,.stats-card{padding:9px;margin-top:7px}.schedule-card{margin-top:7px}.section-header,.stats-section-title-row,.salary-section-head,.table-toolbar-main,.table-toolbar-sub{gap:6px}.muted-label,.stats-person-label,.stats-section-hint,.salary-section-total,.salary-save-status,.salary-rate-line{font-size:9px}.current-user-title{font-size:16px;gap:3px}.admin-badge,.current-user-title .admin-badge.inline{height:14px;padding:0 4px;font-size:7px}.summary-grid,.stats-team-overview-grid,.team-summary-grid{gap:5px}.summary-grid{margin-top:7px}.summary-item,.stats-team-overview-item,.team-summary-grid div{min-height:36px;border-radius:6px}.summary-item strong,.stats-team-overview-item strong,.team-summary-grid strong{font-size:15px}.summary-item span,.stats-team-overview-item span,.team-summary-grid span{margin-top:2px;font-size:9px}.calendar-card .section-header{margin-bottom:6px}.calendar-weekdays,.calendar-grid{gap:4px}.calendar-weekdays span{font-size:10px}.calendar-grid{margin-top:5px}.calendar-cell{border-radius:6px}.calendar-date-wrap{width:32px;min-width:32px;grid-template-columns:7px 15px 8px}.calendar-day{font-size:11px}.calendar-lunar,.calendar-lunar span{width:8px;font-size:6px}.calendar-shift-row .shift-chip{min-width:27px;height:13px;padding:0 3px;font-size:7px}.shift-chip,.legend .shift-chip,.stats-overview-tag,.stats-shift,.name-view-person-name{min-width:32px;height:16px;padding:0 4px;font-size:8px}.legal-shift-badge,.stats-legal-shift-badge{min-width:10px;height:10px;font-size:7px}.table-toolbar{padding:9px 9px 7px}.table-toolbar-sub{height:20px;margin-top:3px}.table-toolbar-sub .muted-label{font-size:9px}.table-view-option{min-width:40px;height:22px;font-size:9px}.identity-row,.table-row{height:31px}.identity-header,.table-header{height:36px}.table-head,.shift-cell{min-height:31px}.table-header .table-head{min-height:36px}.identity-row strong,.identity-header strong,.date-head strong{font-size:10px}.identity-row span,.identity-header span,.date-head span{font-size:8px}.stats-view-tabs{gap:3px;padding:3px;margin-bottom:7px}.stats-view-tab{height:27px;border-radius:6px;font-size:11px}.stats-filter-card{gap:5px;margin-bottom:5px}.stats-filter-item{min-height:38px;padding:0 7px;border-radius:7px}.stats-filter-label{margin-bottom:2px;font-size:9px}.stats-filter-select,.stats-filter-trigger,.stats-filter-value{font-size:13px}.stats-picker-backdrop,.user-picker-backdrop{align-items:flex-end;justify-content:center;padding:0}.stats-picker,.user-picker{width:100%;max-width:430px;max-height:min(82vh,620px);border-radius:16px 16px 0 0;box-shadow:0 -12px 32px #0f172a2e}.stats-picker .user-picker-header,.user-picker .user-picker-header{padding:12px 14px}.stats-picker .user-picker-header h2,.user-picker .user-picker-header h2{font-size:15px;font-weight:900}.stats-picker .user-picker-header .ghost-button,.user-picker .user-picker-header .ghost-button{min-width:48px;height:30px;font-size:11px}.stats-picker-list,.user-picker-list{max-height:calc(82vh - 56px)}.stats-picker-list button,.user-picker-list button{min-height:52px;padding:0 14px}.stats-picker-list strong,.user-picker-list strong{font-size:17px;font-weight:850}.picker-check{width:18px;height:18px;flex-basis:18px}.stats-page-indicator{height:10px;margin:-2px 0 3px}.stats-page-indicator-dot{width:4px;height:4px}.stats-page-indicator-dot.active{width:16px}.stats-section-title-row{margin-bottom:6px}.stats-overview-row,.stats-overview-header{grid-template-columns:minmax(0,1fr) 48px 48px}.stats-overview-row{min-height:32px;padding:0 6px}.stats-overview-header{min-height:28px;font-size:9px}.stats-overview-value{font-size:12px}.stats-bar-chart{min-height:106px;gap:7px}.stats-bar-item{grid-template-rows:16px 66px 16px}.stats-bar-track{width:21px;height:66px}.stats-bar-value,.stats-bar-label{font-size:9px}.salary-section{padding:6px 0 7px}.salary-block-title{font-size:11px}.salary-input-grid,.salary-result-grid,.salary-deduction-grid,.salary-final-grid{gap:8px}.salary-input-label,.salary-result-label,.salary-summary-label{margin-bottom:2px;font-size:8px}.salary-input-box{min-height:31px;padding:0 5px;border-radius:6px}.salary-input-prefix,.salary-input,.salary-result-value,.salary-summary-value{font-size:11px}.salary-result-item,.salary-summary-item{min-height:33px;padding:0 5px;border-radius:6px}.stats-daily-row{grid-template-columns:minmax(0,1fr) 46px 50px 30px;min-height:32px;gap:4px;padding:0 6px}.stats-daily-header{min-height:28px;font-size:9px}.stats-daily-date,.stats-daily-pay,.stats-daily-overtime{font-size:10px}.stats-daily-pay{min-width:40px;height:16px;font-size:8px}.stats-team-legend{gap:5px;margin-bottom:8px}.stats-team-legend-item{height:18px;padding:0 7px;font-size:9px}.stats-team-chart{gap:8px}.stats-team-chart-row{grid-template-columns:22px 54px minmax(0,1fr) 36px;gap:6px;min-height:32px}.stats-ranking-rank{width:20px;height:20px;font-size:10px}.stats-team-chart-name,.stats-team-chart-total{font-size:11px}.stats-team-chart-group{font-size:9px}.stats-team-chart-track{height:18px}.stats-team-chart-segment span{font-size:8px}.auth-card{padding:9px}.auth-tabs button{min-height:28px;font-size:11px}.auth-form{gap:8px}.auth-form label span{font-size:10px}.auth-form input{min-height:32px;border-radius:7px;font-size:12px}.shift-editor{padding:12px 10px calc(12px + env(safe-area-inset-bottom,0px))}.editor-group{gap:6px;padding:8px 0}.editor-label{font-size:12px}.editor-option .shift-chip{min-width:48px;height:25px;font-size:11px}.segmented-row button,.editor-actions .primary-button,.editor-actions .ghost-button{min-width:44px;height:28px;font-size:11px}.overtime-input-row{min-height:32px;font-size:12px}.stats-overview-row,.stats-overview-header{grid-template-columns:72px minmax(0,1fr) 48px 48px}.stats-overview-header span,.stats-overview-row>*{justify-self:center;text-align:center}.stats-overview-header span:first-child,.stats-overview-row>.stats-overview-name{grid-column:1}.stats-overview-header span:nth-child(2),.stats-overview-row>.stats-overview-value:nth-child(2){grid-column:3}.stats-overview-header span:nth-child(3),.stats-overview-row>.stats-overview-value:nth-child(3){grid-column:4}.stats-daily-row{grid-template-columns:60px minmax(0,1fr) 42px 50px 32px}.stats-daily-header span,.stats-daily-row>*{justify-self:center;text-align:center}.stats-daily-header span:first-child,.stats-daily-row>.stats-daily-date{grid-column:1}.stats-daily-header span:nth-child(2),.stats-daily-row>.stats-daily-shift-cell{grid-column:3}.stats-daily-header span:nth-child(3),.stats-daily-row>.stats-daily-pay{grid-column:4}.stats-daily-header span:nth-child(4),.stats-daily-row>.stats-daily-overtime{grid-column:5}.editor-backdrop{align-items:flex-end;justify-content:center;padding:0;background:rgba(23,32,51,.46)}.shift-editor{width:100%;max-width:430px;max-height:min(82vh,620px);padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));overflow:auto;border-radius:16px 16px 0 0;background:#ffffff;box-shadow:0 -12px 32px #0f172a2e}.shift-editor .section-header{align-items:flex-start;margin-bottom:12px}.shift-editor .section-header .muted-label{display:block;margin-top:3px;color:#667085;font-size:11px}.shift-editor .section-header h2{font-size:17px}.editor-group{gap:7px;padding:10px 0;border-top:1px solid #edf2f7}.editor-label{color:#526071;font-size:11px;font-weight:850}.editor-options,.segmented-row{gap:7px}.editor-option,.segmented-row button{min-height:24px;padding:3px;border:1px solid transparent;border-radius:999px;background:transparent;color:#526071;font-size:11px}.segmented-row{display:inline-flex;width:max-content;padding:3px;border-radius:999px;background:#f3f6fa}.segmented-row button{min-width:40px;height:24px;padding:0 10px;background:transparent}.editor-option.active,.segmented-row button.active{border-color:#2563eb38;background:#ffffff;color:#2563eb;box-shadow:0 2px 8px #1520361f}.editor-option .shift-chip{min-width:44px;height:22px;font-size:10px}.overtime-input-row{display:inline-flex;width:auto;min-height:28px;gap:6px;padding:0;border:0;background:transparent;color:#526071;font-size:11px}.overtime-input-row input{width:52px;height:28px;padding:0 8px;border:1px solid #cdd7e5;border-radius:7px;background:#fbfcff;color:#172033;font-size:12px;font-weight:850}.overtime-hint{color:#667085;font-size:10px;font-weight:800}.editor-actions{gap:8px;padding-top:10px;border-top:1px solid #edf2f7}.editor-actions .primary-button,.editor-actions .ghost-button{min-width:56px;height:32px;font-size:12px}.salary-card .salary-basic-input-grid{display:flex;gap:12px}.salary-card .salary-basic-input-grid .salary-input-item{min-width:0;flex:1 1 0}.salary-card .salary-basic-input-grid .salary-input-box{width:100%;box-sizing:border-box;overflow:hidden;border:1px solid #c4d3e5;background:#ffffff;box-shadow:0 0 0 1px #c4d3e547}.salary-card .salary-basic-input-grid .salary-input{width:0;min-width:0;max-width:100%}}@media (min-width: 1024px){:root{--schedule-name-column: 118px;--schedule-date-column: 60px}.app-shell{width:min(1360px,100% - 40px);max-width:1360px;padding:18px 20px 36px}.schedule-sticky-top{margin:-18px -20px 0;padding:18px 20px 1px}.hero-panel{min-height:52px;padding:6px 8px}.app-mark{width:46px;height:46px;flex-basis:46px;border-radius:12px}h1,.stats-mini-header h1{font-size:24px}.period,.stats-mini-header p{margin-top:4px;font-size:16px}.sync-button,.stats-back-button,.stats-sync-button,.ghost-button,.user-switch-button{min-width:68px;height:38px;padding:0 14px;font-size:16px}.month-tabs{gap:6px;margin-top:8px;margin-bottom:10px;padding:5px}.month-tab{flex:1 1 0;height:44px;min-width:0;font-size:20px}.status-strip{min-height:34px;margin-top:8px;padding:0 12px;font-size:15px}.schedule-content-grid{display:grid;grid-template-columns:minmax(460px,.86fr) minmax(0,1.14fr);gap:12px;align-items:start}.current-user-card,.calendar-card,.schedule-card{margin-top:10px}.current-user-card{padding:14px}.section-header h2,.current-user-title,.table-toolbar-main h2,.stats-section-title{font-size:22px}.muted-label,.stats-person-label,.stats-section-hint{font-size:15px}.admin-badge,.current-user-title .admin-badge.inline{height:20px;padding:0 8px;font-size:12px}.summary-grid{gap:10px;margin-top:12px}.summary-item{min-height:56px;border-radius:10px}.summary-item strong{font-size:22px}.summary-item span{font-size:15px}.calendar-card{padding:14px}.calendar-card .section-header{margin-bottom:8px}.calendar-weekdays,.calendar-grid{gap:6px}.calendar-weekdays{margin-top:8px}.calendar-weekdays span{font-size:15px}.calendar-grid{margin-top:7px}.calendar-cell{height:64px;border-radius:9px}.calendar-cell-content{min-height:46px}.calendar-date-wrap{width:48px;min-height:22px;margin-bottom:3px}.calendar-lunar-spacer,.calendar-lunar,.calendar-lunar span{width:14px}.calendar-day{width:20px;min-width:20px;flex-basis:20px;font-size:17px}.calendar-lunar,.calendar-lunar span{font-size:9px;line-height:9px}.calendar-lunar span{height:9px}.calendar-shift-row .shift-chip{min-width:34px;height:20px;padding:0 6px;font-size:11px}.legal-shift-badge{min-width:16px;height:16px;padding:0 4px;font-size:9px}.edited-marker,.overtime-marker{left:6px;width:6px;height:6px}.edited-marker{top:6px}.overtime-marker{bottom:6px}.schedule-card{padding:0}.table-toolbar{padding:12px 14px 10px}.table-toolbar-sub{height:26px;margin-top:3px}.table-toolbar-sub .muted-label{font-size:14px}.legend{gap:6px;height:24px}.legend .shift-chip,.shift-chip{min-width:38px;height:22px;padding:0 6px;font-size:12px}.table-view-option{min-width:56px;height:32px;font-size:15px}.table-shell{max-width:100%}.identity-row,.table-row{height:42px}.identity-header,.table-header{height:46px}.identity-row{padding:4px 8px}.identity-row strong,.identity-header strong,.date-head strong{font-size:13px}.identity-row span,.identity-header span,.date-head span{margin-top:2px;font-size:11px}.table-head,.shift-cell{min-height:42px}.table-header .table-head{min-height:46px}.name-view-person-name{width:50px;height:22px;font-size:11px}.table-scroll{scrollbar-width:thin}.table-scroll::-webkit-scrollbar{display:block;height:8px}.table-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:#c8d3e1}.stats-sticky-top{margin:-18px -20px 0;padding:18px 20px 1px}.stats-mini-header{min-height:52px;gap:10px;margin-bottom:10px}.stats-view-tabs{gap:5px;padding:5px;margin-bottom:10px;border-radius:12px}.stats-view-tab{height:40px;border-radius:9px;font-size:18px}.stats-filter-card{gap:10px;padding:10px;margin-bottom:8px;border-radius:12px}.stats-filter-item{min-height:58px;padding:0 12px;border-radius:10px}.stats-filter-label{margin-bottom:4px;font-size:15px}.stats-filter-trigger,.stats-filter-value,.stats-filter-select{font-size:20px}.stats-page-indicator{height:18px;margin:-1px 0 6px}.stats-page-indicator-dot{width:7px;height:7px}.stats-page-indicator-dot.active{width:22px}.stats-content-inner{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:12px;padding-bottom:12px}.stats-content-inner>.stats-card{margin-bottom:0}.stats-content-inner>.salary-card,.stats-content-inner>.stats-card:only-child{grid-column:1/-1}.stats-card{padding:14px;border-radius:12px}.stats-section-title-row{margin-bottom:10px}.stats-overview-row{grid-template-columns:90px minmax(0,1fr) 68px 68px;min-height:42px;padding:0 10px}.stats-overview-header{min-height:36px;font-size:14px}.stats-overview-tag,.stats-shift{min-width:44px;height:24px;padding:0 7px;font-size:13px}.stats-overview-value,.stats-daily-pay,.stats-daily-overtime,.stats-team-chart-total{font-size:16px}.stats-bar-chart{min-height:154px;gap:12px;padding-top:4px}.stats-bar-item{grid-template-rows:22px 100px 22px}.stats-bar-track{width:30px;height:100px}.stats-bar-value,.stats-bar-label{font-size:13px}.salary-section{padding:10px 0 12px}.salary-section-head{margin-bottom:8px}.salary-block-title{font-size:16px}.salary-section-total,.salary-save-status{font-size:14px}.salary-input-label,.salary-result-label,.salary-summary-label{margin-bottom:5px;font-size:13px}.salary-input-box{min-height:38px;padding:0 8px;border-radius:8px}.salary-input-prefix,.salary-input,.salary-result-value,.salary-summary-value{font-size:15px}.salary-rate-line{margin-top:7px;font-size:13px}.salary-result-item,.salary-summary-item{min-height:48px;border-radius:8px}.stats-daily-row{grid-template-columns:minmax(0,1fr) 70px 70px 40px;min-height:44px;gap:6px;padding:0 10px}.stats-daily-header{min-height:36px;font-size:14px}.stats-daily-date{font-size:16px}.stats-daily-pay{min-width:58px;height:23px;font-size:13px}.stats-legal-shift-badge{min-width:18px;height:18px;padding:0 5px;font-size:11px}.stats-team-overview-item{min-height:64px}.stats-team-overview-item strong{font-size:22px}.stats-team-overview-item span{margin-top:3px;font-size:15px}.stats-team-legend{margin-bottom:10px}.stats-team-legend-item{height:23px;padding:0 9px;font-size:13px}.stats-team-chart{gap:9px}.stats-team-chart-row{grid-template-columns:30px 76px minmax(0,1fr) 48px;gap:8px}.stats-ranking-rank{width:26px;height:26px;font-size:13px}.stats-team-chart-name{font-size:16px}.stats-team-chart-group{margin-top:2px;font-size:13px}.stats-team-chart-track{height:22px}}.auth-shell{display:grid;width:min(430px,100%);min-height:100dvh;place-items:center;padding:24px 14px}.auth-page{width:100%}.auth-page .auth-card{width:100%;max-width:none;margin:0;padding:14px}.auth-page .auth-tabs{display:inline-flex}.auth-page .auth-form{grid-template-columns:1fr;gap:10px;margin-top:12px}.auth-page .auth-form label{gap:5px}.auth-page .auth-form input,.auth-page .auth-form select{width:100%;min-height:34px;padding:0 10px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface-strong);color:var(--ink);font-size:13px;font-weight:760}.auth-page .auth-form select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.auth-page .auth-form .primary-button{width:100%;margin-top:2px}.auth-page .auth-error{margin:10px 0 0}@media (max-width: 720px){.auth-shell{padding:18px 7px}.auth-page .auth-card{padding:9px;border-radius:9px}.auth-page .auth-tabs{padding:3px;border-radius:8px}.auth-page .auth-tabs button{min-height:28px;padding:0 12px;border-radius:7px;font-size:11px}.auth-page .auth-form{gap:8px;margin-top:10px}.auth-page .auth-form label{font-size:10px}.auth-page .auth-form input,.auth-page .auth-form select{min-height:32px;border-radius:7px;font-size:12px}.auth-page .auth-form .primary-button{min-height:37px;font-size:13px}}
