:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Helvetica Neue,Arial,sans-serif;color:#202630;color-scheme:light;background:#f4f4f2;font-synthesis:none;text-rendering:optimizeLegibility;--sidebar: #f1f1ef;--line: #dedfdf;--muted: #717984;--blue: #2677e8;--blue-dark: #1462cc;--ale-cyan: #00aec4;--ale-cyan-deep: #0292a5;--shadow: 0 20px 60px rgba(35, 42, 52, .18)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{overflow:hidden}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}.loading-screen{height:100%;display:grid;place-content:center;justify-items:center;gap:12px;color:var(--muted);background:#f7f7f5}.login-shell{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 18% 20%,rgba(77,143,231,.13),transparent 31%),radial-gradient(circle at 82% 76%,rgba(122,92,214,.11),transparent 35%),#f5f5f2}.login-card{width:min(420px,100%);padding:38px 42px 30px;background:#ffffffeb;border:1px solid rgba(255,255,255,.8);border-radius:24px;box-shadow:0 30px 90px #28313d24;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.login-mark{width:56px;height:56px;display:grid;place-items:center;border-radius:16px;background:linear-gradient(145deg,#438ef2,#2368cf);color:#fff;box-shadow:0 12px 24px #2677e840}.eyebrow{margin:0 0 6px;color:#85909e;font-size:10px;font-weight:750;letter-spacing:.18em}.login-heading{margin:24px 0 30px}.login-heading h1{margin:0;font-size:31px;letter-spacing:-.04em}.login-heading>p:last-child{margin:8px 0 0;color:var(--muted);font-size:14px}.login-form{display:grid;gap:16px}.login-form>label:not(.remember-row),.field,.report-filters label{display:grid;gap:7px}.login-form label>span,.field>span,.report-filters label>span{font-size:12px;font-weight:650;color:#56606d}.field-hint{margin-top:-2px;color:#7d8792;font-size:9px;font-weight:450;line-height:1.35}.project-picker{min-width:0;display:grid;gap:5px}.project-picker-control{position:relative;display:flex;min-width:0}.project-picker-control>input{width:100%;padding-right:36px}.project-picker-control>button{position:absolute;right:4px;top:50%;width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:7px;background:transparent;color:#697483;cursor:pointer;transform:translateY(-50%)}.project-picker-control>button:hover{background:#edf2f8;color:#2f5f99}.project-picker-control>button:disabled{cursor:default;opacity:.45}.project-picker-options{z-index:130;max-height:210px;overflow-y:auto;display:grid;padding:5px;border:1px solid #cfd6df;border-radius:10px;background:#fff;box-shadow:0 14px 34px #1e2a3a2e}.project-picker-options button{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border:0;border-radius:7px;background:transparent;color:#33404f;font-size:12px;text-align:left;cursor:pointer}.project-picker-options button:hover,.project-picker-options button[aria-selected=true]{background:#edf4fd;color:#1d5da9}.project-picker-empty{padding:9px;color:#7d8792;font-size:11px;line-height:1.4}.inline-event-editor .project-picker{position:relative}.inline-event-editor .project-picker-options{position:absolute;top:34px;left:0;right:0}.project-total-hint{display:flex;align-items:center;gap:5px;margin-top:0;color:var(--ale-cyan-deep);font-size:10px;font-weight:720;line-height:1.35;font-variant-numeric:tabular-nums}.project-total-hint:before{content:"";width:14px;height:2px;flex:0 0 auto;border-radius:99px;background:linear-gradient(90deg,var(--ale-cyan),var(--ale-cyan-deep));box-shadow:0 0 5px #00aec457}input,select,textarea{border:1px solid #d4d8dd;border-radius:10px;background:#ffffffe6;color:#202630;-webkit-text-fill-color:#202630;caret-color:var(--blue);min-height:40px;padding:9px 11px;outline:none;transition:border-color .18s,box-shadow .18s}input:focus,select:focus,textarea:focus{border-color:#6ca4ed;box-shadow:0 0 0 3px #2677e81f}input:disabled,select:disabled,textarea:disabled{color:#343b45;-webkit-text-fill-color:#343b45;background:#f4f5f5;opacity:1}textarea{resize:vertical}.remember-row{display:flex;align-items:center;gap:8px;font-size:13px;color:#535c67;cursor:pointer}.remember-row input{min-height:auto;width:16px;height:16px;accent-color:var(--blue)}.login-button{width:100%;min-height:44px;justify-content:center;margin-top:4px}.login-footnote{margin:24px 0 0;text-align:center;color:#a0a6ad;font-size:11px}.form-error{padding:10px 12px;border-radius:9px;background:#fff0ef;color:#b73932;font-size:12px;border:1px solid #f5d0cc}.app-shell{display:flex;width:100%;height:100%;background:#fff}.sidebar{width:244px;flex:0 0 244px;display:flex;flex-direction:column;padding:18px 14px 14px;background:var(--sidebar);border-right:1px solid #d9dad9;overflow-y:auto;z-index:20}.brand-row{display:flex;align-items:center;gap:10px;padding:0 6px 18px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#438ef2,#2368cf);border-radius:10px;box-shadow:0 6px 14px #2677e838}.brand-row>div:nth-child(2){display:grid;gap:2px}.brand-row strong{font-size:14px;letter-spacing:-.02em}.brand-row small{font-size:10px;color:var(--muted)}.sidebar-close{display:none!important;margin-left:auto}.new-event-button{min-height:38px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:10px;background:var(--blue);color:#fff;font-size:13px;font-weight:650;cursor:pointer;box-shadow:0 5px 12px #2677e82e}.new-event-button:hover{background:var(--blue-dark)}.sidebar-calendar{padding:14px 2px 15px;border-bottom:1px solid #d9dad9}.sidebar-calendar>header{min-height:30px;display:grid;grid-template-columns:28px 1fr 28px;align-items:center;margin-bottom:4px}.sidebar-calendar>header strong{text-align:center;color:#59616c;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.sidebar-calendar>header button{width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:7px;background:transparent;color:#6f7781;cursor:pointer}.sidebar-calendar>header button:hover{background:#ffffffb8;color:#29313a}.sidebar-calendar-weekdays,.sidebar-calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}.sidebar-calendar-weekdays span{height:24px;display:grid;place-items:center;color:#858c94;font-size:10px;font-weight:680}.sidebar-calendar-days button{position:relative;width:28px;height:28px;display:grid;place-items:center;justify-self:center;padding:0;border:0;border-radius:50%;background:transparent;color:#4b535d;font-size:11px;font-weight:620;font-variant-numeric:tabular-nums;cursor:pointer}.sidebar-calendar-days button:hover{background:#ffffffd6}.sidebar-calendar-days button.outside{color:#adb2b7;font-weight:520}.sidebar-calendar-days button.today:not(.selected){color:var(--blue);box-shadow:inset 0 0 0 1px #2677e873}.sidebar-calendar-days button.selected{background:var(--blue);color:#fff;box-shadow:0 2px 7px #2677e842}.sidebar-section{padding:17px 4px 2px}.section-title{display:flex;justify-content:space-between;align-items:center;color:#7e8690;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.filter-row{min-height:28px;display:flex;align-items:center;gap:8px;padding:3px 5px;border-radius:7px;font-size:12px;cursor:pointer}.filter-row:hover{background:#ffffffad}.filter-row input{position:absolute;opacity:0;pointer-events:none}.filter-dot{width:10px;height:10px;border-radius:50%;box-shadow:inset 0 0 0 1px #0000000d}.filter-dot.multi{background:conic-gradient(#3478f6 0 33%,#7c5ce7 33% 66%,#219777 66%)}.filter-dot.store{background:#2677e8}.filter-row input:not(:checked)+.filter-dot{background:transparent!important;border:1.5px solid #adb2b8;box-shadow:none}.clear-filter{padding:4px 5px;border:0;background:transparent;color:var(--blue);font-size:11px;cursor:pointer}.sidebar-bottom{margin-top:auto;padding-top:16px;border-top:1px solid #d9dad9;display:grid;gap:3px}.sidebar-bottom button,.sidebar-bottom a{min-height:34px;display:flex;align-items:center;gap:9px;padding:0 8px;border:0;background:transparent;border-radius:8px;color:inherit;text-decoration:none;font-size:12px;cursor:pointer}.sidebar-bottom button:hover,.sidebar-bottom a:hover{background:#ffffffb8}.sidebar-review-link{color:var(--ale-cyan-deep)!important;font-weight:680}.sidebar-recent-changes{min-height:132px;max-height:320px;flex:1 1 190px;display:flex;flex-direction:column;gap:8px;margin:14px 4px 10px;padding-top:12px;overflow:hidden;border-top:1px solid #d9dad9}.sidebar-recent-changes>header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:6px;color:#68717c}.sidebar-recent-changes>header>div{min-width:0;display:flex;align-items:center;gap:6px}.sidebar-recent-changes>header strong{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.sidebar-recent-changes>header small{flex:0 0 auto;color:#939aa2;font-size:8px}.sidebar-recent-list{min-height:0;flex:1;display:grid;align-content:start;gap:5px;padding-right:2px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.sidebar-recent-list article{min-width:0;display:flex;align-items:flex-start;gap:7px;padding:7px;border:1px solid rgba(215,218,221,.9);border-radius:8px;background:#ffffff9e}.sidebar-recent-list article>div{min-width:0;display:grid;gap:3px}.sidebar-recent-list article strong,.sidebar-recent-list article span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-recent-list article strong{color:#4c5661;font-size:9px}.sidebar-recent-list article span{color:#858e98;font-size:8px}.sidebar-recent-list .change-dot{margin-top:3px}.sidebar-scrim{display:none}.calendar-area{position:relative;min-width:0;flex:1;display:flex;flex-direction:column;background:#fff}.topbar{min-height:66px;display:flex;align-items:center;justify-content:flex-start;gap:14px;padding:6px 18px;border-bottom:1px solid var(--line);background:#fffffff2}.assignment-notifications{min-width:0;width:min(880px,50vw);height:54px;flex:0 1 auto;display:flex;align-items:center;gap:8px;padding:4px 6px 4px 9px;overflow:hidden;border:1px solid #e7928d;border-radius:9px;background:#fff0ef;color:#992d27;box-shadow:0 3px 11px #b4302717}.assignment-notifications.assignment-count-1{width:min(430px,42vw)}.assignment-notifications.assignment-count-2{width:min(650px,47vw)}.assignment-notifications>header{min-width:126px;flex:0 0 auto;display:flex;align-items:center;gap:7px}.assignment-notifications>header>div{display:grid;gap:1px}.assignment-notifications>header strong{font-size:12px;line-height:1.15}.assignment-notifications>header small{color:#b05a55;font-size:9px;line-height:1.15}.assignment-alert-list{min-width:0;height:44px;flex:1;display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-color:#a9afb7 transparent;scrollbar-gutter:stable;scrollbar-width:thin}.assignment-alert-list::-webkit-scrollbar{height:5px}.assignment-alert-list::-webkit-scrollbar-thumb{border-radius:999px;background:#a9afb7}.assignment-alert-list::-webkit-scrollbar-track{background:transparent}.assignment-alert-list article{min-width:0;height:36px;flex:0 0 230px;display:flex;align-items:center;justify-content:space-between;gap:7px;padding:3px 5px 3px 8px;border:1px solid #edbbb7;border-radius:7px;background:#ffffffd6}.assignment-alert-list article>div{min-width:0;display:grid;gap:2px}.assignment-alert-list article strong{overflow:hidden;color:#84241f;font-size:12px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.assignment-alert-list article span{overflow:hidden;color:#a34e49;font-size:10px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.assignment-alert-list button,.assignment-alert-list a{min-height:29px;display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;padding:0 9px;border:0;border-radius:7px;background:#c83c34;color:#fff;text-decoration:none;font-size:11px;font-weight:750;cursor:pointer}.assignment-alert-list button:disabled{opacity:.6;cursor:wait}.assignment-alert-list .review-task-alert{border-color:#a8dfe5;background:#f4fdfe}.assignment-alert-list .review-task-alert strong{color:#096c79}.assignment-alert-list .review-task-alert span{color:#39838c}.assignment-alert-list .review-task-alert a{background:var(--ale-cyan-deep)}.change-dot{width:7px;height:7px;flex:0 0 auto;border-radius:50%;background:#4d8de4}.change-dot.change-create{background:#2ba86f}.change-dot.change-delete{background:#d65a52}.recent-change-empty{color:#9299a1;font-size:9px}.nav-group,.top-actions{flex:0 0 auto;display:flex;align-items:center;gap:10px}.top-actions{margin-left:auto}.audio-review-button{min-height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid #b8e3e8;border-radius:9px;background:#f1fcfd;color:#087b89;text-decoration:none;font-size:11px;font-weight:720;white-space:nowrap}.audio-review-button:hover{border-color:#7dcbd4;background:#e6f9fb}.nav-group h1{min-width:180px;margin:0 0 0 4px;font-size:19px;letter-spacing:-.03em;white-space:nowrap}.icon-button{width:34px;height:34px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:9px;background:transparent;cursor:pointer}.icon-button:hover{background:#f0f1f2}.mobile-menu{display:none}.today-button,.secondary-button,.primary-button,.danger-button{min-height:34px;display:inline-flex;align-items:center;gap:7px;padding:0 13px;border-radius:9px;border:1px solid #d3d6da;background:#fff;text-decoration:none;font-size:12px;font-weight:620;cursor:pointer}.today-button:hover,.secondary-button:hover{background:#f5f5f5}.primary-button{border-color:var(--blue);background:var(--blue);color:#fff}.primary-button:hover{background:var(--blue-dark)}.primary-button:disabled{opacity:.55;cursor:not-allowed}.danger-button{color:#c33d36;border-color:#efcac6;background:#fff8f7}.arrow-pair{display:flex}.arrow-pair button{width:29px;height:34px;display:grid;place-items:center;padding:0;background:#fff;border:1px solid #d3d6da;cursor:pointer}.arrow-pair button:first-child{border-radius:9px 0 0 9px}.arrow-pair button:last-child{border-radius:0 9px 9px 0;border-left:0}.segmented{display:inline-flex;padding:2px;background:#eceeef;border-radius:9px}.segmented button{min-height:29px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:#5d6570;font-size:11px;cursor:pointer}.segmented button.active{background:#fff;color:#202630;box-shadow:0 1px 4px #1b232d24}.calendar-width-controls{display:inline-flex;align-items:center;gap:5px}.day-zoom-control{width:118px;height:33px;display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border:1px solid #d9dce0;border-radius:9px;background:#fff}.overlap-zoom-control{width:145px}.day-zoom-control>span{flex:0 0 auto;color:#69727d;font-size:9px;font-weight:680;white-space:nowrap}.day-zoom-control input[type=range]{width:100%;min-height:20px;height:20px;flex:1;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;accent-color:var(--blue);cursor:ew-resize}.day-zoom-control input[type=range]:focus{border:0;box-shadow:none}.search-box{width:154px;display:flex;align-items:center;gap:6px;padding:0 9px;border-radius:9px;background:#f1f2f3;color:#7b838c}.search-box input{width:100%;min-height:34px;padding:0;border:0;box-shadow:none;background:transparent;font-size:11px}.employee-filter{width:108px;min-height:34px;height:34px;padding:0 9px;border-radius:9px;font-size:11px}.profile-menu{position:relative}.profile-button{height:38px;display:flex;align-items:center;gap:8px;padding:0 7px;border:0;border-radius:10px;background:transparent;cursor:pointer}.profile-button>span,.avatar{width:28px;height:28px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:#e1e9f6;color:#315f9d;font-size:12px;font-weight:700}.profile-button>div{display:grid;gap:1px;text-align:left}.profile-button strong{font-size:11px}.profile-button small{color:var(--muted);font-size:9px}.profile-popover{position:absolute;z-index:40;top:calc(100% + 6px);right:0;width:140px;display:none;padding:5px;border:1px solid #dfe1e4;border-radius:10px;background:#fff;box-shadow:0 12px 30px #1c232c24}.profile-menu:hover .profile-popover,.profile-menu:focus-within .profile-popover{display:grid}.profile-popover button{min-height:32px;display:flex;align-items:center;gap:8px;padding:0 8px;border:0;border-radius:7px;background:transparent;font-size:11px;cursor:pointer}.profile-popover button:hover{background:#f2f3f4}.mobile-filters{display:none}.calendar-frame{min-height:0;flex:1;padding:0 8px 8px}.calendar-save-error{position:fixed;right:18px;bottom:18px;z-index:120;display:flex;align-items:flex-start;gap:9px;max-width:min(520px,calc(100vw - 36px));padding:12px 14px;border:1px solid #d8796f;border-radius:10px;background:#fff5f2;color:#81291f;box-shadow:0 12px 30px #44201833;font-size:14px;line-height:1.5}.calendar-save-error>svg{flex:none;margin-top:2px}.calendar-save-error button{flex:none;border:0;padding:0;color:inherit;background:none;cursor:pointer}.fc{--fc-border-color: #e3e4e4;--fc-today-bg-color: rgba(52, 120, 246, .045);--fc-neutral-bg-color: #f7f7f6;font-size:12px}.fc .fc-scrollgrid{border:0}.fc .fc-scrollgrid-section>*{border-top:0}.fc .fc-col-header-cell{height:52px;vertical-align:middle;background:#fff;border-top:0}.fc .fc-col-header-cell-cushion{color:#5a626d;text-decoration:none;font-size:11px;font-weight:550}.location-columns .fc-col-header-cell{height:55px;padding:0}.location-columns .fc-col-header-cell-cushion{display:block;width:100%;padding:0}.location-day-header{position:relative;display:grid;grid-template-rows:25px 28px;width:100%}.location-day-date{display:grid;place-items:center;font-size:11px;font-weight:700}.location-day-stores{display:grid;grid-template-columns:minmax(0,1fr)}.location-day-stores>span{position:relative;display:grid;place-items:center;min-width:0;padding:2px 3px;border-left:1px solid #d9dfe6;font-size:10px;font-weight:700;line-height:1.15;white-space:normal;text-align:center;overflow-wrap:anywhere}.location-day-stores>span[hidden]{display:none}.location-day-stores>span.first-active-location{border-left:0}.day-location-toggle{position:absolute;z-index:2;top:3px;right:4px;width:20px;height:20px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;background:transparent;color:#8a929c;opacity:0;cursor:pointer;transition:opacity .12s,background .12s}.location-columns .fc-col-header-cell:hover .day-location-toggle,.day-location-toggle:focus-visible,.location-expanded .day-location-toggle{opacity:1}.day-location-toggle:hover{background:#eceff2;color:#202630}.location-expanded .day-location-toggle{color:var(--blue)}.location-columns .compact-day .day-location-toggle{display:none}@media(hover:none){.day-location-toggle{opacity:.75}}.day-location-menu{position:fixed;z-index:90;width:236px;padding:10px 12px 11px;border:1px solid #dfe1e4;border-radius:10px;background:#fff;box-shadow:0 12px 30px #1c232c29;font-size:12px}.day-location-menu header{display:flex;align-items:baseline;gap:7px;margin-bottom:6px}.day-location-menu header strong{font-size:13px}.day-location-menu header small{color:var(--muted);font-size:10px}.day-location-menu label{display:flex;align-items:center;gap:7px;min-height:30px;cursor:pointer}.day-location-menu input[type=checkbox]{flex:none;width:15px;height:15px;min-height:0;margin:0;padding:0;accent-color:var(--blue);cursor:inherit}.day-location-switch{font-weight:700}.day-location-menu p{margin:2px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.day-location-stores{display:grid;gap:1px;margin-top:3px;padding-top:5px;border-top:1px solid #edeff1}.day-location-stores label.locked{cursor:not-allowed}.day-location-stores label>small{margin-left:auto;color:var(--muted);font-size:10px}.day-location-stores .text-button{justify-self:end;margin-top:4px;padding:2px 0}@media(hover:none){.day-location-menu label{min-height:40px}.day-location-stores .text-button{padding:8px 0 2px}}.location-store-edge{position:absolute;top:0;left:0;right:0;height:6px;background:var(--store-color);pointer-events:none}.location-day-stores>span.first-active-location .location-store-edge{left:4px;border-top-left-radius:6px}.location-day-stores>span.last-active-location .location-store-edge{right:4px;border-top-right-radius:6px}.location-columns .fc-timegrid-col-frame{position:relative}.location-columns .store-disabled-shade{position:absolute;z-index:1;box-sizing:border-box;background:#6e778136;box-shadow:inset 0 1px #67707a29,inset 0 -1px #67707a29;pointer-events:none}.location-columns .fc-timegrid-col[data-location-count="2"] .fc-timegrid-col-frame:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(to right,transparent calc(50% - .5px),#d7dce3 calc(50% - .5px),#d7dce3 calc(50% + .5px),transparent calc(50% + .5px));pointer-events:none}.location-columns .fc-timegrid-col[data-location-count="3"] .fc-timegrid-col-frame:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(to right,transparent calc(33.333% - .5px),#d7dce3 calc(33.333% - .5px),#d7dce3 calc(33.333% + .5px),transparent calc(33.333% + .5px),transparent calc(66.667% - .5px),#d7dce3 calc(66.667% - .5px),#d7dce3 calc(66.667% + .5px),transparent calc(66.667% + .5px));pointer-events:none}.location-columns .fc-timegrid-event-harness[data-location-index=unknown]{left:1px!important;right:1px!important;margin-right:0!important}.location-columns .fc-timegrid-event-harness[data-location-index=unknown] .event-inner:before{content:"未指定地点";position:absolute;z-index:4;right:4px;top:3px;padding:2px 4px;border-radius:4px;background:#0000008f;color:#fff;font-size:10px}.fc .fc-day-today .fc-col-header-cell-cushion{color:var(--blue);font-weight:720}.fc .fc-timegrid-slot{height:29px;border-top-color:#c9ced4}.fc .fc-timegrid-slot.fc-timegrid-slot-minor{border-top:1px dashed #e5e8eb}.fc .fc-timegrid-slot:not(.fc-timegrid-slot-minor){border-top-width:1.5px;box-shadow:inset 0 1px #848f9a14}.fc .fc-timegrid-slot-label-cushion{color:#69727d;font-size:10px;font-weight:580;transform:translateY(-8px)}.fc .fc-timegrid-axis{width:46px}.fc .fc-timegrid-now-indicator-line{border-color:#ef5b55}.fc .fc-timegrid-now-indicator-arrow{border-color:#ef5b55;border-top-color:transparent;border-bottom-color:transparent}.fc .fc-event{border:0;border-radius:5px;box-shadow:inset 0 0 0 1px #ffffff1f;cursor:pointer}.fc .fc-timegrid-event{min-height:22px;overflow:hidden}.fc .fc-timegrid-event .fc-event-main{height:100%;overflow:hidden}.fc .fc-event-main{padding:0}.fc .fc-timegrid-event-harness-inset .fc-timegrid-event{box-shadow:0 0 0 1px #ffffff57,0 2px 5px #1e242d24}.event-inner{position:relative;width:100%;height:100%;min-height:0;padding:6px 25px 20px 8px;display:flex;flex-direction:column;gap:4px;overflow:hidden;border-left:5px solid #a8afb9;border-radius:5px;background:inherit;box-shadow:inset 1px 0 #ffffff57;line-height:1.26}.event-card-primary{flex:0 0 auto;display:grid;gap:3px}.event-inner strong{overflow:hidden;font-size:15px;font-weight:780;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.event-card-time{overflow:hidden;font-size:13px;font-weight:680;line-height:1.18;opacity:.96;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.event-card-details{min-height:0;flex:1;display:flex;flex-direction:column;gap:3px;overflow:hidden}.event-inner small{overflow:hidden;flex:0 0 auto;font-size:12px;line-height:1.28;opacity:.94;text-overflow:ellipsis;white-space:nowrap}.event-inner .event-detail-partial-hidden{display:none!important}.event-card-notes{padding-top:2px;border-top:1px solid rgba(255,255,255,.28)}.event-hover-preview{position:fixed;z-index:96;max-height:min(330px,calc(100vh - 16px));overflow:auto;display:grid;gap:5px;padding:9px 11px 10px;border:1px solid rgba(255,255,255,.48);border-left:6px solid #a8afb9;border-radius:8px;color:#fff;box-shadow:0 14px 34px #161c2557,inset 1px 0 #ffffff7a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:none;animation:event-hover-in .12s ease-out}.event-hover-preview .event-card-details{flex:none;min-height:auto;overflow:visible;gap:3px}.event-hover-preview strong{font-size:16px;line-height:1.2;overflow-wrap:anywhere}.event-hover-preview .event-card-time{font-size:14px}.event-hover-preview small{font-size:13px;line-height:1.32;opacity:.97;overflow-wrap:anywhere}.event-hover-label{padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.3);font-size:9px;font-weight:680;letter-spacing:.03em;opacity:.78}@keyframes event-hover-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.calendar-frame.collaboration-group-hover-active .fc-event.collaboration-group-highlight{z-index:22!important;box-shadow:0 0 0 2px #fffffffa,0 0 0 6px #00aec4f2,0 0 0 9px #00aec447,0 0 20px #00aec4b8!important;transition:box-shadow .12s ease-out}.calendar-frame.collaboration-group-hover-active .fc-timegrid-event-harness.collaboration-group-highlight-harness{z-index:22!important}.event-card-action{position:absolute;z-index:6;width:17px;height:17px;display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.46);border-radius:5px;background:#14191f4d;color:#fff;box-shadow:0 1px 3px #14191f29;opacity:.84;cursor:pointer}.event-card-action:hover{background:#14191f9e;opacity:1}.event-add-overlap-button{right:3px;bottom:3px}.event-copy-handle{right:23px;bottom:3px;cursor:grab;touch-action:none}.event-copy-handle:active{cursor:grabbing}.event-collaborate-handle{right:43px;bottom:3px;cursor:grab;touch-action:none;background:#00707e94}.event-collaborate-handle:active{cursor:grabbing}.event-schedule-export-button{right:auto;bottom:3px;left:3px;width:auto;min-width:47px;display:inline-flex;gap:2px;padding:0 4px;background:#0a7a8bc7;font-size:8px;font-weight:760;white-space:nowrap}.event-delete-button{top:3px;right:3px}.event-cross-store-stripe{display:none}.fc .fc-timegrid-event.cross-overlap-leading,.fc .fc-timegrid-event.cross-overlap-trailing{margin-bottom:0;border-radius:0;isolation:isolate}.fc .fc-timegrid-event-harness.cross-overlap-harness{left:0!important;right:0!important;margin-right:0!important;z-index:var(--cross-z-index, 3)!important}.fc .fc-timegrid-event.cross-overlap-leading .event-inner,.fc .fc-timegrid-event.cross-overlap-trailing .event-inner{border-radius:0}.fc .fc-timegrid-event.cross-overlap-leading .event-card-primary{padding-right:38px}.fc .fc-timegrid-event.cross-overlap-leading .event-copy-handle{top:3px;right:23px;bottom:auto}.fc .fc-timegrid-event.cross-overlap-leading .event-add-overlap-button{top:3px;right:43px;bottom:auto}.fc .fc-timegrid-event.cross-overlap-trailing .event-cross-store-stripe{position:absolute;z-index:5;top:7px;left:calc(var(--cross-stem-width, 10px) + 1.5px);width:5px;height:max(0px,calc(var(--cross-split-y, 0px) - 13px));display:block;border-radius:3px 0 0 3px;pointer-events:none}.fc .fc-timegrid-event.cross-overlap-trailing .event-card-primary{position:absolute;z-index:2;top:7px;left:calc(var(--cross-stem-width, 10px) + 10px);right:4px;gap:2px}.fc .fc-timegrid-event.cross-overlap-trailing .event-card-primary strong{overflow:hidden;padding-right:17px;font-size:12px;line-height:1.16;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}.fc .fc-timegrid-event.cross-overlap-trailing .event-card-time{overflow:hidden;font-size:11px;text-overflow:ellipsis}.fc .fc-timegrid-event.cross-overlap-trailing .event-card-details{position:absolute;z-index:2;top:calc(var(--cross-split-y, 0px) + 9px);right:25px;bottom:20px;left:8px}.fc .fc-timegrid-event.cross-overlap-trailing.cross-overlap-shared-end .event-card-details{top:40px;left:calc(var(--cross-stem-width, 10px) + 10px)}.calendar-handle-copy-active,.calendar-handle-copy-active *{cursor:grabbing!important}.event-copy-ghost{z-index:280;margin:0;pointer-events:none;opacity:.82;box-shadow:0 14px 32px #141b244d,inset 1px 0 #ffffff6b;transform-origin:top left;will-change:transform}.event-copy-ghost:after{content:"";position:absolute;inset:0;border:1px dashed rgba(255,255,255,.88);border-radius:5px;pointer-events:none}.event-copy-ghost-label{position:absolute;right:5px;bottom:4px;z-index:3;padding:2px 6px;border:1px solid rgba(255,255,255,.6);border-radius:999px;background:#14191fb8;color:#fff;font-size:10px;font-weight:740;line-height:1.25}.event-copy-saving .event-inner{box-shadow:inset 1px 0 #ffffff6b,inset 0 0 0 1px #ffffff7a}.event-copy-saving .event-inner:before{content:"保存中";position:absolute;right:5px;bottom:4px;z-index:4;padding:2px 6px;border:1px solid rgba(255,255,255,.56);border-radius:999px;background:#14191f8c;color:#fff;font-size:9px;font-weight:720;line-height:1.25}.calendar-interaction-active,.calendar-interaction-active *{-webkit-user-select:none;user-select:none}.calendar-interaction-active [data-ale-day-width],.calendar-interaction-active col[data-ale-day-width],.calendar-interaction-active .fc-timegrid-event,.calendar-interaction-active .fc-timegrid-event-harness{transition:none!important;animation:none!important}.calendar-interaction-active .fc-event-mirror,.calendar-interaction-active .fc-event-dragging{contain:layout paint style;box-shadow:0 2px 8px #181f2833!important;will-change:transform,top,left}.calendar-interaction-active .event-card-action{pointer-events:none}.selection-mirror{background:#2677e8e6}.event-cancelled{opacity:.48;text-decoration:line-through}.event-completed .event-inner:after{content:"✓";position:absolute;top:4px;right:34px;opacity:.9}.fc .fc-daygrid-day-number{color:#4a535e;text-decoration:none;font-size:11px}.fc .fc-list{border:0}.fc .fc-list-day-cushion{background:#f5f5f3}.rolling-calendar{overflow-x:auto;overflow-y:hidden;padding:0 0 8px;overscroll-behavior-x:contain;scrollbar-color:#b8bec6 transparent;scrollbar-width:thin}.rolling-calendar::-webkit-scrollbar{width:9px;height:9px}.rolling-calendar::-webkit-scrollbar-thumb{background:#bec4cb;border:2px solid white;border-radius:999px}.rolling-calendar::-webkit-scrollbar-track{background:transparent}.rolling-calendar>.fc{width:var(--rolling-calendar-width);min-width:var(--rolling-calendar-width);height:100%}.rolling-calendar .fc-scroller{overscroll-behavior-x:contain}.rolling-calendar .fc-timegrid-axis,.rolling-calendar .fc-timegrid-slot-label{position:relative;z-index:8;transform:translate(var(--rolling-scroll-left, 0px));background:#fffffff7;box-shadow:1px 0 #d8dce0}.rolling-calendar .fc-scrollgrid-section-header .fc-timegrid-axis{z-index:10}.rolling-calendar .fc-timegrid-slots table{position:relative}.rolling-calendar .fc-timegrid-cols .fc-timegrid-axis{z-index:7}.rolling-calendar .fc-col-header-cell{position:relative}.rolling-calendar [data-ale-day-width],.rolling-calendar col[data-ale-day-width]{transition:width .08s linear,min-width .08s linear,max-width .08s linear}.hour-axis-overlay{position:absolute;z-index:32;left:0;width:46px;overflow:hidden;pointer-events:none;background:#fffffff7;box-shadow:1px 0 #d8dce0}.hour-axis-overlay span{position:absolute;left:0;width:46px;height:20px;padding-right:5px;color:#545e6a;font-size:10px;font-weight:680;line-height:14px;text-align:right;font-variant-numeric:tabular-nums}.inline-event-editor{position:fixed;z-index:95;max-height:min(510px,calc(100vh - 16px));overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;display:grid;gap:8px;padding:10px 10px 9px 13px;border:2px solid var(--blue);border-radius:10px;background:#fffffffa;box-shadow:0 14px 36px #1d26313d,0 0 0 1px #fffc;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.inline-editor-accent{position:absolute;inset:7px auto 7px 5px;width:3px;border-radius:99px}.inline-editor-header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#67717d}.inline-editor-header>span{font-size:10px;font-weight:650;letter-spacing:.01em}.inline-editor-header button{width:24px;height:24px;display:grid;place-items:center;flex:0 0 auto;padding:0;border:0;border-radius:6px;background:transparent;color:#7b848e;cursor:pointer}.inline-editor-header button:hover{background:#eef0f2}.inline-title-input{width:100%;min-height:34px;padding:5px 7px;border:0;border-bottom:1px solid #d8dce1;border-radius:0;box-shadow:none!important;background:transparent;font-size:14px;font-weight:680}.inline-title-input:focus{border-color:#7aa9e8}.inline-editor-grid,.inline-editor-expanded-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px}.inline-work-types{grid-column:1 / -1}.inline-event-editor input:not(.inline-title-input),.inline-event-editor select,.inline-event-editor textarea{width:100%;min-width:0;min-height:30px;height:30px;padding:5px 7px;border-radius:7px;font-size:10px}.inline-event-editor .inline-notes{grid-column:1 / -1;height:auto;min-height:64px;resize:vertical}.inline-editor-expanded-fields textarea{grid-column:1 / -1;height:auto;min-height:52px;resize:vertical}.inline-editor-error{padding:7px 8px;border-radius:7px;background:#fff0ef;color:#ae352f;font-size:10px}.inline-editor-actions{position:sticky;z-index:3;bottom:-9px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 -10px -9px -13px;padding:8px 10px 9px 13px;border-top:1px solid #e5e8eb;background:#fffffffa;box-shadow:0 -6px 12px #1d26310a}.inline-editor-actions>span{color:#7a838d;font-size:9px}.inline-editor-actions button{min-height:29px;padding:0 9px;border:0;border-radius:7px;background:transparent;color:#647080;font-size:10px;font-weight:650;cursor:pointer}.inline-editor-actions button:hover{background:#eef1f4}.inline-editor-actions .inline-save-button{min-width:62px;background:var(--blue);color:#fff}.inline-editor-actions .inline-save-button:hover{background:var(--blue-dark)}.inline-editor-actions .inline-save-button:disabled{opacity:.48;cursor:not-allowed}.modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px;background:#21272f47;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{width:min(720px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border:1px solid rgba(255,255,255,.9);border-radius:18px;box-shadow:var(--shadow)}.modal-header{min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:18px 22px 14px;border-bottom:1px solid #e6e7e8}.modal-header h2{margin:0;font-size:20px;letter-spacing:-.03em}.event-form{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:20px 22px 22px}.event-form>.field{align-self:start;align-content:start}.field-wide{grid-column:1 / -1}.field input,.field select,.field textarea{width:100%;font-size:12px}.work-type-picker{display:flex;flex-wrap:wrap;gap:7px}.work-type-picker label{min-height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid #d6dbe1;border-radius:9px;background:#fff;color:#65707c;font-size:11px;cursor:pointer;transition:border-color .15s,background .15s,color .15s,box-shadow .15s}.work-type-picker label.selected{border-color:#9ebce4;background:#f0f6ff;color:#263b55;box-shadow:inset 0 0 0 1px #2677e814}.work-type-picker input{position:absolute;opacity:0;pointer-events:none}.work-type-picker i{width:9px;height:9px;flex:0 0 auto;border-radius:50%;opacity:.42}.work-type-picker label.selected i{opacity:1;box-shadow:0 0 0 2px #ffffffe6,0 0 0 3px #3f557029}.work-type-picker label:has(input:disabled){cursor:default}.work-type-picker.compact{gap:4px}.work-type-picker.compact label{min-height:28px;padding:0 7px;border-radius:7px;font-size:10px}.participant-picker{display:flex;flex-wrap:wrap;gap:7px}.participant-picker label{min-height:34px;display:inline-flex;align-items:center;padding:0 10px;border:1px solid #d6dbe1;border-radius:9px;background:#fff;color:#65707c;font-size:11px;cursor:pointer}.participant-picker label.selected{border-color:#8fb9a2;background:#edf8f1;color:#285b3d;box-shadow:inset 0 0 0 1px #2b915814}.participant-picker input{position:absolute;opacity:0;pointer-events:none}.participant-picker label:has(input:disabled){cursor:default}.participant-picker>small{align-self:center;color:var(--muted);font-size:10px}.participant-picker.compact{gap:4px}.participant-picker.compact label{min-height:28px;padding:0 7px;border-radius:7px;font-size:10px}.inline-participants{grid-column:1 / -1;display:grid;gap:5px}.inline-participants>span{color:#67717d;font-size:9px;font-weight:650}.modal-actions{display:flex;align-items:center;justify-content:space-between;padding-top:3px}.modal-actions-left{display:flex;flex-wrap:wrap;gap:8px}.modal-actions-right{display:flex;gap:8px}.project-export-button{color:#087f90}.report-backdrop{align-items:stretch;padding:18px}.report-modal{position:relative;width:min(1180px,100%);max-height:100%;display:flex;flex-direction:column}.report-heading>div>p:last-child{margin:5px 0 0;color:var(--muted);font-size:11px}.report-filters{display:grid;grid-template-columns:repeat(6,1fr) auto;align-items:end;gap:9px;padding:14px 20px;border-bottom:1px solid #e6e7e8;background:#fafafa}.report-filters input,.report-filters select{width:100%;min-height:34px;height:34px;padding:5px 8px;font-size:11px}.refresh-report{min-height:34px}.report-body-scroll{min-height:0;flex:1;overflow:auto}.report-summary{display:flex;gap:10px;padding:14px 20px;overflow-x:auto}.report-summary article{position:relative;min-width:125px;overflow:hidden;padding:12px 14px;border:1px solid #e1e3e5;border-radius:11px;background:#fff}.report-summary article:before{content:"";position:absolute;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,var(--ale-cyan),var(--ale-cyan-deep))}.report-summary article span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:10px}.report-summary article i,.type-chip i{width:7px;height:7px;border-radius:50%}.report-summary article strong{display:inline-block;margin-top:7px;font-size:22px;letter-spacing:-.04em}.report-summary article small{margin-left:4px;color:var(--muted);font-size:9px}.project-summary-panel{position:relative;margin:0 20px 14px;overflow:hidden;border:1px solid #dfe6e9;border-radius:12px;background:#fff}.project-summary-panel:before{content:"";position:absolute;top:0;right:0;left:0;height:3px;background:linear-gradient(90deg,var(--ale-cyan),var(--ale-cyan-deep))}.project-summary-panel>header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:15px 16px 11px;border-bottom:1px solid #e7ebed;background:linear-gradient(180deg,#00aec40b,#fff0)}.project-summary-panel h3{margin:2px 0 0;color:#1a1d1f;font-size:15px;letter-spacing:-.02em}.project-summary-panel>header>small{color:#7b858c;font-size:9px}.project-summary-table-wrap{overflow-x:auto}.project-summary-table{width:100%;border-collapse:collapse;font-size:10px}.project-summary-table th{padding:8px 14px;color:#7b858c;text-align:left;font-size:9px;font-weight:700;letter-spacing:.04em;white-space:nowrap}.project-summary-table td{padding:10px 14px;border-top:1px solid #edf0f1;color:#39454c}.project-summary-table td strong{color:#1a1d1f;font-size:11px}.project-summary-table .project-amount{color:var(--ale-cyan-deep);font-weight:750}.project-schedule-button{display:inline-flex;align-items:center;gap:4px;min-height:27px;padding:4px 8px;border:1px solid #b7dfe5;border-radius:7px;background:#f0fbfc;color:#087f90;font:inherit;font-weight:700;cursor:pointer}.project-schedule-button:hover{border-color:var(--ale-cyan);background:#e6f8fa}.report-table-wrap{min-height:0;overflow-x:auto;padding:0 20px 14px}.report-table{width:100%;border-collapse:collapse;font-size:10px}.report-table th{position:sticky;top:0;z-index:1;padding:9px 7px;background:#f1f3f4;color:#626b76;text-align:left;font-weight:650;white-space:nowrap}.report-table th:first-child{border-radius:7px 0 0 7px}.report-table th:last-child{border-radius:0 7px 7px 0}.report-table td{padding:9px 7px;border-bottom:1px solid #eceeef;vertical-align:top;white-space:nowrap}.report-table td:nth-child(4){min-width:140px;white-space:normal}.report-table td:nth-child(5),.report-table td:nth-child(11){min-width:170px;white-space:normal}.report-table td strong{display:block;font-size:10px}.report-table td small{display:block;margin-top:3px;color:var(--muted)}.type-chip{display:inline-flex;align-items:center;gap:5px}.empty-table{padding:35px!important;color:var(--muted);text-align:center!important}.report-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px 18px;border-top:1px solid #e6e7e8}.schedule-export-backdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px;background:#121d267a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.schedule-export-dialog{width:min(720px,100%);max-height:90%;overflow:auto;border:1px solid #dce4e7;border-radius:16px;background:#fff;box-shadow:0 22px 70px #121d2647}.schedule-export-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 22px 16px;border-bottom:1px solid #e8ecee}.schedule-export-dialog h3{margin:4px 0 5px;color:#1a1d1f;font-size:18px;letter-spacing:-.025em}.schedule-export-dialog header small,.schedule-export-dialog footer small{color:var(--muted);font-size:10px}.schedule-export-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 22px 10px}.schedule-export-controls strong{font-size:12px}.schedule-export-controls>div{display:flex;gap:5px}.schedule-export-controls button{padding:3px 6px;border:0;background:transparent;color:#188b99;font:inherit;font-size:10px;font-weight:700;cursor:pointer}.schedule-column-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:6px 22px 20px}.schedule-column-grid label{display:flex;align-items:center;gap:8px;min-height:38px;padding:8px 10px;border:1px solid #e0e5e7;border-radius:9px;background:#fafbfb;color:#556169;font-size:11px;cursor:pointer}.schedule-column-grid label.selected{border-color:#8ed7e0;background:#edfafb;color:#116f7a;font-weight:700}.schedule-column-grid input{accent-color:var(--ale-cyan-deep)}.schedule-export-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 22px 18px;border-top:1px solid #e8ecee;background:#fbfcfc}.schedule-export-dialog>footer>div{display:flex;gap:8px}.payroll-panel{margin:8px 20px 24px;overflow:hidden;border:1px solid #cfd9e8;border-radius:15px;background:#f9fbfe;box-shadow:0 8px 24px #25456f12}.payroll-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 18px 15px;border-bottom:1px solid #dce4ef;background:linear-gradient(135deg,#f2f7fe,#fbfcff)}.payroll-heading h3{display:flex;align-items:center;gap:7px;margin:7px 0 5px;font-size:17px;letter-spacing:-.025em}.payroll-heading p{max-width:820px;margin:0;color:#687586;font-size:11px;line-height:1.55}.admin-only-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:7px;background:#e1edfc;color:#2c65a8;font-size:9px;font-weight:750}.payroll-empty{display:flex;align-items:center;gap:10px;padding:17px 18px;color:#43658d}.payroll-empty strong{font-size:12px}.payroll-empty p{margin:3px 0 0;color:#758294;font-size:10px}.payroll-feedback{margin:12px 18px 0}.payroll-success{display:flex;align-items:center;gap:6px;padding:9px 11px;border:1px solid #bfe0cd;border-radius:9px;background:#eef9f2;color:#287247;font-size:11px}.payroll-rules{display:grid;grid-template-columns:repeat(8,minmax(92px,1fr)) auto;align-items:end;gap:8px;padding:15px 18px;border-bottom:1px solid #dce4ef;background:#fff}.payroll-rule-intro{grid-column:1 / -1;display:flex;align-items:baseline;gap:8px}.payroll-rule-intro strong{font-size:12px}.payroll-rule-intro small{color:var(--muted);font-size:9px}.payroll-rules label{min-width:0;display:grid;gap:6px}.payroll-rules label>span{display:flex;align-items:center;gap:5px;color:#596676;font-size:10px;font-weight:650}.payroll-rules label>span i{width:7px;height:7px;border-radius:50%}.payroll-rules input{width:100%;min-width:0;min-height:34px;height:34px;padding:5px 7px;border:0;border-radius:8px;font-size:11px;box-shadow:none}.input-affix{min-width:0;display:flex;align-items:center;border:1px solid #d4d8dd;border-radius:9px;background:#fff;overflow:hidden}.input-affix:focus-within{border-color:#6ca4ed;box-shadow:0 0 0 3px #2677e81f}.input-affix input:focus{box-shadow:none}.input-affix b{padding-left:9px;color:#7b8591;font-size:10px;font-weight:600}.input-affix.suffix b{padding:0 9px 0 2px}.payroll-rule-save{min-height:34px;white-space:nowrap}.payroll-summary{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;padding:16px 18px}.payroll-summary article{display:grid;gap:5px;padding:13px 15px;border:1px solid #dbe3ed;border-radius:11px;background:#fff}.payroll-summary article span{color:#6c7886;font-size:10px}.payroll-summary article strong{font-size:20px;letter-spacing:-.035em}.payroll-summary article small{color:#8b949e;font-size:9px}.payroll-summary .salary-total{border-color:#9ebde7;background:linear-gradient(135deg,#edf5ff,#f9fcff)}.payroll-summary .salary-total strong{color:#1f63b5}.payroll-summary .salary-deduction{border-color:#edc7c2;background:#fff8f7}.payroll-summary .salary-deduction strong{color:#b44b42}.payroll-table-wrap{overflow-x:auto;padding:0 18px 18px}.payroll-table{width:100%;min-width:1080px;border-collapse:collapse;font-size:10px}.payroll-table th{padding:9px 8px;background:#eaf0f7;color:#596779;text-align:left;white-space:nowrap}.payroll-table th:first-child{border-radius:8px 0 0 8px}.payroll-table th:last-child{border-radius:0 8px 8px 0}.payroll-table td{padding:10px 8px;border-bottom:1px solid #e2e7ed;vertical-align:top;white-space:nowrap}.payroll-table td:nth-child(2),.payroll-table td:nth-child(3){min-width:170px;white-space:normal}.payroll-table td>strong{font-size:11px}.payroll-table td>small{display:block;margin-top:4px;color:#7a8591;font-size:9px;line-height:1.35}.payroll-table input{width:116px;min-height:32px;height:32px;padding:5px 7px;border-radius:8px;font-size:10px}.payroll-table .input-affix{width:116px}.payroll-table .input-affix input{width:87px;border:0;box-shadow:none}.payroll-table tr.payroll-overridden td{background:#fffaf0}.payroll-table .commission-cell strong{color:#19704a;font-size:12px}.payroll-row-actions{min-width:120px}.payroll-row-actions .text-button{display:inline-flex;align-items:center;gap:3px;padding:4px}.payroll-row-actions .text-button.muted{color:#737e89}.team-modal{width:min(900px,100%)}.team-tabs{margin:16px 20px 0}.team-content{padding:16px 20px 22px}.store-settings{margin-bottom:16px;padding:14px;border:1px solid #dfe6e9;border-radius:12px;background:#fff}.store-settings>header{margin-bottom:12px}.store-settings h3{margin:2px 0 3px;font-size:13px}.store-settings header small,.store-disabled-list>small{color:var(--muted);font-size:10px}.store-color-grid{display:flex;flex-wrap:wrap;gap:8px}.store-color-row{display:flex;align-items:center;gap:7px;min-height:36px;padding:4px 9px 4px 5px;border:1px solid #e4e8ea;border-radius:8px;background:#fafbfc;font-size:11px;font-weight:680}.store-color-row input[type=color]{width:26px;height:26px;min-height:26px;padding:1px;cursor:pointer}.store-disabled-settings{margin-top:13px;padding-top:12px;border-top:1px solid #e9edef}.store-disabled-settings>strong{font-size:12px}.store-disabled-list{display:grid;gap:5px;margin:8px 0}.store-disabled-row{display:flex;align-items:center;gap:7px;min-height:32px;padding:3px 6px;border-radius:7px;background:#f5f6f7;font-size:10px}.store-disabled-row>span{min-width:0;flex:1}.store-disabled-row .icon-button{width:26px;height:26px}.store-disabled-form{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding-top:7px}.store-disabled-form select,.store-disabled-form input{width:auto;min-width:0;max-width:180px;min-height:32px;height:32px;font-size:11px}.store-disabled-form input[type=datetime-local]{max-width:205px}.store-disabled-form>span{font-size:10px;color:var(--muted)}.store-settings-footer{display:flex;align-items:center;gap:12px;margin-top:12px}.store-settings-footer .color-save-success{margin-top:0}.work-type-color-settings{position:relative;margin-bottom:16px;overflow:hidden;padding:14px;border:1px solid #dfe6e9;border-radius:12px;background:#fff}.work-type-color-settings:before{content:"";position:absolute;top:0;right:0;left:0;height:3px;background:linear-gradient(90deg,var(--ale-cyan),var(--ale-cyan-deep))}.work-type-color-settings>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.work-type-color-settings h3{margin:2px 0 3px;font-size:13px}.work-type-color-settings header small{color:var(--muted);font-size:9px}.work-type-color-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.work-type-color-row{min-width:0;display:grid;grid-template-columns:auto minmax(80px,1fr) auto auto;align-items:center;gap:7px;padding:7px 8px;border:1px solid #e4e8ea;border-radius:9px;background:#fafbfc}.work-type-color-row input[type=color]{width:27px;height:27px;min-height:27px;padding:2px;border-radius:7px;cursor:pointer}.work-type-color-row input:not([type=color]){min-width:0;height:30px;min-height:30px;padding:5px 7px;border-radius:7px;font-size:11px;font-weight:680}.type-save-button{display:inline-flex;align-items:center;gap:3px;padding:4px 2px}.type-delete-button{width:28px;height:28px;color:#b05454}.create-work-type-form{display:grid;grid-template-columns:auto minmax(140px,240px) auto;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid #e9edef}.create-work-type-form input[type=color]{width:32px;height:32px;min-height:32px;padding:2px;border-radius:8px;cursor:pointer}.create-work-type-form input:not([type=color]){min-height:34px;height:34px;font-size:10px}.color-save-success{display:flex;align-items:center;gap:5px;margin-top:10px;color:var(--ale-cyan-deep);font-size:10px;font-weight:680}.create-user-form{display:grid;grid-template-columns:1.1fr 1fr 1.3fr 1fr auto;gap:8px;padding:13px;border-radius:12px;background:#f5f6f6}.create-user-form h3,.create-branch-form h3{grid-column:1 / -1;margin:0 0 3px;font-size:12px}.create-user-form input,.create-user-form select,.create-branch-form input{min-width:0;min-height:34px;height:34px;padding:5px 8px;font-size:10px}.user-list{margin-top:16px;border:1px solid #e1e3e5;border-radius:12px;overflow:hidden}.user-row{min-height:58px;display:grid;grid-template-columns:auto minmax(140px,1fr) auto auto;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid #eceeef}.user-row:last-child{border-bottom:0}.user-row.inactive{opacity:.48}.user-main{display:grid;gap:3px}.user-main strong{font-size:11px}.user-main small{color:var(--muted);font-size:9px}.role-badge{padding:4px 7px;background:#eef2f7;border-radius:7px;color:#546476;font-size:9px}.user-role-select{min-height:32px;height:32px;padding:4px 28px 4px 8px;border-radius:8px;color:#546476;font-size:10px}.user-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;white-space:nowrap}.text-button{border:0;background:transparent;color:var(--blue);font-size:10px;cursor:pointer}.text-button:disabled{color:#adb2b8;cursor:not-allowed}.create-branch-form{display:grid;grid-template-columns:1fr auto auto;gap:8px;padding:13px;border-radius:12px;background:#f5f6f6}.create-branch-form input[type=color]{width:42px;padding:4px}.branch-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:15px}.branch-grid article{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid #e1e3e5;border-radius:11px}.branch-grid article>i{width:12px;height:32px;border-radius:6px}.branch-grid article>div{display:grid;gap:3px}.branch-grid strong{font-size:11px}.branch-grid small{color:var(--muted);font-size:9px}.toast{position:fixed;z-index:200;left:50%;bottom:24px;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:11px 15px;border-radius:11px;background:#1f2630f0;color:#fff;box-shadow:0 10px 30px #141a2240;font-size:12px}@media(max-width:1600px){.topbar:has(.assignment-notifications) .search-box{display:none}.topbar:has(.assignment-notifications) .employee-filter{display:none}}@media(max-width:1100px){.search-box,.employee-filter{display:none}.profile-button>div{display:none}.create-user-form{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.sidebar{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);transform:translate(-105%);transition:transform .2s ease;box-shadow:18px 0 45px #1b212929}.sidebar.open{transform:translate(0)}.sidebar-close{display:inline-grid!important}.sidebar-scrim{display:block;position:fixed;z-index:15;inset:0;border:0;background:#191e253d}.mobile-menu{display:inline-grid}.topbar{min-height:58px;flex-wrap:wrap;gap:6px 8px;padding:8px 10px}.assignment-notifications{order:3;width:100%!important;height:54px;flex:1 0 100%}.assignment-notifications>header{min-width:118px}.assignment-alert-list article{flex-basis:220px}.nav-group{gap:5px}.nav-group h1{min-width:0;margin-left:2px;font-size:15px}.arrow-pair,.top-actions .view-switcher,.calendar-width-controls{display:none}.today-button{min-height:32px;padding:0 9px}.profile-button{padding:0}.mobile-filters{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-bottom:1px solid var(--line)}.mobile-add{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--blue);color:#fff}.calendar-frame{padding:0}.fc{font-size:10px}.fc .fc-timegrid-axis{width:35px}.fc .fc-col-header-cell{height:42px}.location-columns .fc-col-header-cell{height:55px}.event-inner strong{font-size:15px}.event-card-time{font-size:13px}.location-columns .event-inner{padding-right:6px}.location-columns .event-card-primary strong{padding-right:18px}.location-columns .event-card-time{overflow:visible;white-space:normal;text-overflow:clip;overflow-wrap:anywhere}.event-inner small{font-size:12px}.inline-event-editor{max-width:calc(100vw - 16px);min-height:210px!important}.modal-backdrop{align-items:end;padding:0}.modal-card{max-height:94vh;border-radius:18px 18px 0 0}.event-form{grid-template-columns:1fr;padding:16px}.field-wide{grid-column:auto}.modal-header{padding:16px}.report-backdrop{align-items:stretch}.report-modal{border-radius:0;max-height:100%}.report-filters{grid-template-columns:1fr 1fr}.refresh-report{justify-content:center}.project-summary-panel{margin:0 10px 12px}.project-summary-panel>header{align-items:flex-start;flex-direction:column;gap:4px}.report-actions{flex-wrap:wrap}.schedule-export-backdrop{position:fixed;border-radius:0;padding:10px}.schedule-column-grid{grid-template-columns:1fr 1fr;padding-right:16px;padding-left:16px}.schedule-export-dialog>header,.schedule-export-dialog>footer{padding-right:16px;padding-left:16px}.schedule-export-controls{align-items:flex-start;flex-direction:column;padding-right:16px;padding-left:16px}.payroll-panel{margin:8px 10px 18px}.payroll-heading{flex-direction:column}.payroll-rules{grid-template-columns:1fr 1fr}.payroll-rule-intro,.payroll-rule-save{grid-column:1 / -1}.payroll-rule-save{justify-content:center}.payroll-summary{grid-template-columns:1fr}.create-user-form{grid-template-columns:1fr 1fr}.work-type-color-settings>header{flex-direction:column}.work-type-color-grid{grid-template-columns:1fr}.user-row{grid-template-columns:auto 1fr auto}.user-actions{grid-column:2 / -1;justify-content:flex-start}.branch-grid{grid-template-columns:1fr}}@media print{body{overflow:visible;background:#fff}#root>.app-shell>*:not(.report-backdrop){display:none!important}.report-backdrop{position:static;display:block;padding:0;background:#fff}.report-modal{width:100%;max-height:none;overflow:visible;border:0;border-radius:0;box-shadow:none}.no-print{display:none!important}.report-table-wrap{overflow:visible;padding:0}.report-body-scroll{overflow:visible}.report-table th{position:static}.report-summary{padding:10px 0}.report-summary article{break-inside:avoid}.project-summary-panel{margin:0 0 12px;break-inside:avoid}.report-heading{padding:0 0 12px}.payroll-panel{margin:20px 0 0;break-before:page;box-shadow:none}.payroll-table-wrap{overflow:visible;padding:0 10px 10px}.payroll-table{min-width:0;font-size:8px}}.late-hours-toggle{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:32px;border:0;border-top:1px solid #d8dce0;background:#f5f7fa;color:#3478f6;font-size:12px;cursor:pointer}.late-hours-toggle:hover{background:#eaf1fc}.late-hours-toggle span{color:#69727d;font-size:11px}.disabled-pick-banner{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 16px;background:#eaf6f7;border-bottom:1px solid #a6d9de;color:#173b40}.disabled-pick-banner label{display:flex;align-items:center;gap:6px}.disabled-pick-banner select{color:#173b40;background:#fff}.participant-work-editor{display:grid;gap:10px;min-width:0}.participant-work-row{margin:0;min-width:0;padding:8px 10px 10px;border:1px solid #e4e9ec;border-left:2px solid #00aec4;border-radius:8px;background:#fafbfc}.participant-work-row legend{padding:0 4px;color:#39454c;font-size:11px;font-weight:600}.participant-work-row>small{display:block;margin-top:7px;color:#65707c;font-size:10px}.participant-work-row input:focus-visible+i{outline:2px solid #0292a5;outline-offset:3px}.holiday-overtime-panel{margin:16px 18px 0;padding:15px;border:1px solid #e4e9ec;border-left:3px solid #00aec4;border-radius:10px;background:#fafbfc}.holiday-overtime-panel h4{margin:0 0 7px;font-size:13px;color:#1a1d1f}.holiday-overtime-panel p{margin:0;line-height:1.7;font-size:11px;color:#65707c}.holiday-overtime-overview{display:flex;flex-wrap:wrap;gap:12px 24px;margin:12px 0;font-size:11px;color:#65707c}.holiday-overtime-overview strong{color:#1a1d1f;font-variant-numeric:tabular-nums}.holiday-overtime-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:8px}.holiday-overtime-day{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #e4e9ec;border-radius:7px;background:#fff;cursor:pointer}.holiday-overtime-day.selected{border-color:#0292a5;background:#f0fafb}.holiday-overtime-day input{width:16px;height:16px;margin:0;accent-color:#0292a5}.holiday-overtime-day span{display:grid;gap:3px}.holiday-overtime-day strong{font-size:11px;font-variant-numeric:tabular-nums}.holiday-overtime-day small,.holiday-overtime-day b{font-size:10px;color:#65707c;font-weight:400}.holiday-overtime-day b{margin-left:auto}.holiday-overtime-day.selected b{color:#0292a5}.holiday-overtime-panel .holiday-overtime-note{margin-top:10px;font-size:10px}.payroll-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}@media print{.holiday-overtime-day{break-inside:avoid}.holiday-overtime-panel a{color:inherit}}
