:root{color:#344054;font-synthesis:none;--line:#e7eaf0;--blue:#1677ff;--date-column-width:82px;--workplace-column-width:84px;background:#f6f8fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}.sync-banner{z-index:40;text-align:center;background:#fff8e8;border:1px solid #ebc875;border-radius:12px;flex-wrap:wrap;justify-content:center;gap:10px;width:max-content;max-width:min(680px,100vw - 24px);padding:14px;font-size:13px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #10182825}.sync-banner>span,.sync-banner>small{flex-basis:100%}.sync-banner button{white-space:normal}button:disabled,select:disabled{cursor:default;opacity:.55}html{overflow:auto hidden}body{min-width:0;min-height:100svh;margin:0;overflow:visible hidden}body.is-range-selecting,body.is-range-selecting *{cursor:crosshair;-webkit-user-select:none!important;user-select:none!important}body.is-entry-moving,body.is-entry-moving *{-webkit-user-select:none!important;user-select:none!important;cursor:grabbing!important}body.is-entry-resizing,body.is-entry-resizing *{-webkit-user-select:none!important;user-select:none!important;cursor:ew-resize!important}button,select,textarea{font:inherit}button{cursor:pointer}.app-shell{--workplace-column-width:var(--adaptive-workplace-column-width,84px);background:#fff;grid-template-rows:auto 24px minmax(0,1fr);height:100svh;display:grid}.toolbar{border-bottom:1px solid var(--line);z-index:10;background:#fffffff5;flex-wrap:wrap;align-items:center;gap:7px;min-height:44px;padding:0 11px;display:flex}.brand{color:#fff;background:linear-gradient(135deg,#0f766e,#22c55e);border-radius:10px;place-items:center;width:30px;height:30px;font-size:12px;font-weight:800;display:grid;box-shadow:0 3px 9px #16a34a35}.toolbar-title{flex-direction:column;min-width:205px;line-height:1.1;display:flex}.toolbar-title strong{color:#1d2939;font-size:14px}.toolbar-title span{color:#98a2b3;margin-top:2px;font-size:10px}.tool-button,.primary-button,.secondary-button,.danger-button{color:#475467;white-space:nowrap;background:#f1f4f8;border:0;border-radius:7px;min-height:30px;padding:5px 9px;transition:all .15s}.tool-button:hover:not(:disabled),.secondary-button:hover{background:#e4e9f0}.tool-button:disabled{opacity:.38;cursor:default}.primary-button{color:#fff;background:var(--blue);margin-left:auto;box-shadow:0 4px 12px #1677ff2d}.primary-button:hover{background:#0568ec}.danger-button{color:#d92d20;background:#fff1f0}.toolbar-actions{align-items:center;gap:9px;margin-left:auto;display:flex}.toolbar-actions .primary-button{margin-left:0}.toolbar-icon{font-style:normal}.history-button{justify-content:center;align-items:center;gap:2px;display:inline-flex}.history-icon{flex:none;width:16px;height:16px}.help-icon{display:none}.sync-status{color:#667085;white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:flex}.status-dot{background:#22b573;border-radius:50%;flex:none;width:7px;height:7px;box-shadow:0 0 0 3px #dcfce7}.status-dot.offline{background:#ef4444;box-shadow:0 0 0 3px #fee2e2}.calendar-control{z-index:20;flex:none;position:relative}.calendar-button{align-items:center;gap:5px;display:flex}.calendar-button.active{color:#175cd3;background:#e8f1ff;box-shadow:inset 0 0 0 1px #b2ccff}.calendar-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;width:15px;height:15px}.calendar-strip{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c1cad6 transparent;background:#fff;border:1px solid #dfe5ec;border-radius:12px;width:304px;max-height:min(68vh,560px);padding:4px 10px 12px;position:absolute;top:calc(100% + 7px);left:50%;overflow:hidden auto;transform:translate(-50%);box-shadow:0 18px 45px #10182829,0 3px 10px #10182814}.calendar-strip-track{position:relative}.calendar-month{contain:layout paint;border-bottom:1px solid #e8ecf1;padding:8px 0 13px;position:absolute;left:0;right:0;overflow:hidden}.calendar-month h2{color:#344054;text-align:center;background:#fff;margin:0 -2px 5px;padding:6px 4px 5px;font-size:13px;line-height:1}.calendar-weekdays,.calendar-days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-weekdays{margin-bottom:3px}.calendar-weekdays span{color:#98a2b3;place-items:center;height:20px;font-size:9px;font-weight:600;display:grid}.calendar-days button,.calendar-empty-day{aspect-ratio:1;width:100%}.calendar-days button{color:#344054;background:0 0;border:0;border-radius:9px;place-items:center;padding:0;font-size:11px;transition:background .12s,color .12s,transform .12s;display:grid;position:relative}.calendar-day-number{transform:translateY(-2px)}.calendar-day-markers{justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.calendar-day-marker{border-radius:50%;flex:0 0 4px;width:4px;height:4px;box-shadow:0 0 0 1px #fff}.calendar-days button:hover:not(:disabled){color:#175cd3;background:#eaf2ff;transform:scale(1.04)}.calendar-days button.weekend{color:#d92d20}.calendar-days button.today{color:#fff;background:#1677ff;font-weight:800;box-shadow:0 0 0 2px #fff,0 0 0 3px #84adff}.calendar-days button:disabled{color:#d0d5dd;cursor:default}.compact-control{color:#667085;align-items:center;gap:7px;font-size:12px;display:flex}.compact-control select{color:#344054;background:#fff;border:1px solid #d0d5dd;border-radius:7px;padding:5px 6px}.compact-control small{color:#98a2b3;min-width:43px;font-size:10px}.restore-workplace-button{color:#fff;white-space:nowrap;text-shadow:0 1px 2px #10182866;border:0;border-radius:7px;min-height:30px;padding:5px 10px;font-size:11px;font-weight:700;box-shadow:0 3px 10px #10182824}.time-ruler{grid-template-columns:var(--date-column-width) var(--workplace-column-width) 1fr;z-index:8;background:#fff;border-bottom:1px solid #dfe3e8;display:grid;box-shadow:0 3px 10px #1018280b}.time-ruler-viewport{z-index:8;background:#fff;min-width:0;min-height:0;overflow:hidden}.time-ruler-canvas,.time-ruler{width:100%;height:100%}.time-ruler-canvas{will-change:transform}.date-ruler,.workplace-ruler{white-space:nowrap;color:#b0b7c3;border-right:1px solid var(--line);padding:3px 4px 0;font-size:9px;line-height:14px}.date-ruler{border-right:0}.workplace-ruler{text-align:center;padding-left:2px;padding-right:2px}.time-grid{grid-template-columns:repeat(var(--columns), 1fr);display:grid;overflow:hidden}.time-grid span{color:#667085;white-space:nowrap;text-indent:-13px;padding-top:3px;font-size:10px;line-height:14px;position:relative}.time-grid span:first-child{text-indent:4px}.time-grid span:before{content:"";background:#cdd2da;width:1px;height:6px;position:absolute;bottom:0;left:0}.time-grid span.elapsed{color:#067647;background:#12b76a28;font-weight:700}.time-grid span.full-hour{color:#344054;font-size:11px;font-weight:600}.time-grid span.partial-hour{color:#b8bec7;font-size:9px;font-weight:400}.time-grid span.selected-time{color:#175cd3;background:#dbeafe;font-weight:800;box-shadow:inset 0 -3px #1677ff,inset 1px 0 #1677ff26}.time-grid span.selected-time:before{background:#1677ff}.schedule-scroll{overscroll-behavior-x:auto;overscroll-behavior-y:contain;scrollbar-color:#b9c2cf #f5f7fa;-webkit-user-select:none;user-select:none;background:#f8fafc;min-height:0;overflow-y:auto}.schedule-canvas{min-width:100%;transform:translateY(var(--rubber-offset,0));will-change:transform;position:relative}.schedule-canvas.rubber-pushed{transition:transform 45ms cubic-bezier(.2,.75,.35,1)}.schedule-canvas.rubber-return{transition:transform 95ms cubic-bezier(.2,.8,.4,1)}.timeline-overlay{left:calc(var(--date-column-width) + var(--workplace-column-width));z-index:6;pointer-events:none;position:absolute;top:0;bottom:0;right:0}.current-time-line{filter:drop-shadow(0 0 2px #fff);border-left:2px dashed #e5484d;width:0;position:absolute;top:0;bottom:0}.day{grid-template-columns:var(--date-column-width) var(--workplace-column-width) 1fr;isolation:isolate;border-bottom:var(--day-separator-width,4px) solid #cecece;background:#fff;grid-template-rows:minmax(0,1fr);min-height:0;display:grid;position:absolute;left:0;right:0;box-shadow:inset 0 -1px #d7d7d7}.day.disabled-day{grid-template-columns:var(--date-column-width) 1fr;border-bottom-width:var(--disabled-day-separator-width,3px);background:#f7f8fa}.day.past-week{opacity:.63;filter:saturate(.28)}.day.today .date-cell{color:#067647;background:#12b76a28;border-left:3px solid #12b76a;padding-left:3px}.day.today .workplace-column{background:#12b76a28}.date-cell{z-index:2;color:#4f5358;background:#f3f3f2;border-right:0;flex-direction:column;justify-content:center;padding:8px 6px;display:flex;position:relative}.date-heading{align-items:center;gap:4px;display:flex}.date-cell strong{text-transform:capitalize;font-size:clamp(34px,4.4vh,48px);font-weight:400;line-height:.92}.date-cell span{white-space:nowrap;margin-top:10px;font-size:13px;line-height:1}.cross-button{aspect-ratio:1;appearance:none;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;line-height:0;display:grid;position:relative}.cross-icon{width:100%;height:100%;display:block;overflow:visible}.cross-icon circle{fill:currentColor;stroke:#fff;stroke-width:1px}.cross-icon path{fill:none;stroke:#fff;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.disable-day-button{color:#7b8490;width:18px;height:18px}.disabled-date-cell{min-height:0;padding-top:2px;padding-bottom:2px}.date-cell.disabled-date-cell strong{font-size:min(48px, 4.4vh, calc(var(--schedule-row-height,30px) - 4px));line-height:1}.disabled-day-summary{color:#8a939f;background:#f3f4f6;border-bottom:1px solid #d8dde3;grid-template-columns:1fr auto auto;align-items:center;gap:12px;min-width:0;padding-left:12px;font-size:9px;display:grid}.disabled-day-date{color:#7b8490;white-space:nowrap;font-size:13px;line-height:1}.enable-day-button{color:#fff;background:#1677ff;border:0;border-radius:0;align-self:stretch;min-width:70px;padding:0 10px;font-size:10px}.weekend .date-cell{color:#ef4d4d}.workplace-column,.rows{grid-template-rows:repeat(var(--workplace-count), minmax(0, 1fr));min-height:0;display:grid}.workplace-column{z-index:2;border-right:1px solid var(--line);background:#f3f3f2;position:relative}.rows{z-index:1;position:relative;overflow:hidden}.workplace-column-placeholder{background:0 0;border:0;min-height:0}.workplace-empty-state{color:#8a939f;background:#f3f4f6;border-top:1px solid #d8dde3;justify-content:center;align-items:center;gap:10px;min-height:0;font-size:10px;display:flex}.workplace-empty-state button{color:#fff;background:#1677ff;border:0;border-radius:6px;padding:4px 8px;font-size:10px}.workplace-name{justify-content:flex-end;align-items:center;min-height:0;padding-right:5px;transition:background-color .12s,box-shadow .12s;display:flex;position:relative}.workplace-control{min-width:0;min-height:18px;height:clamp(18px, calc(var(--schedule-row-height,26px) - 4px), 40px);align-items:center;display:inline-flex;position:relative}.workplace-label,.workplace-name-input{width:max-content;max-width:clamp(76px, calc(var(--schedule-row-height,26px) + 56px), 112px);height:100%;padding:clamp(1px, calc(var(--schedule-row-height,26px) - 25px), 3px) clamp(8px, calc(var(--schedule-row-height,26px) - 18px), 13px);color:#fff;font:inherit;font-size:clamp(11px, calc(var(--schedule-row-height,26px) - 15px), 18px);text-overflow:ellipsis;white-space:nowrap;border:0;border-radius:99px;align-items:center;line-height:1;transition:transform .12s,box-shadow .12s;display:flex;overflow:hidden}.workplace-name-input{min-width:clamp(38px, calc(var(--schedule-row-height,26px) + 12px), 58px);outline-offset:2px;-webkit-user-select:text;user-select:text;outline:2px solid #1677ff}.workplace-name.selected-workplace{z-index:5;box-shadow:none;background:0 0}.workplace-name.selected-workplace .workplace-control{z-index:6}.workplace-name.selected-workplace .workplace-label{transform:scale(1.06);box-shadow:0 0 0 2px #fff,0 0 0 4px #1677ff,0 3px 8px #1677ff35}.workplace-name .remove-workplace-button{right:calc(100% + clamp(4px, calc(var(--schedule-row-height,26px) - 22px), 7px));z-index:4;width:clamp(16px, calc(var(--schedule-row-height,26px) - 10px), 24px);height:clamp(16px, calc(var(--schedule-row-height,26px) - 10px), 24px);color:#98a2b3;position:absolute;top:50%;transform:translateY(-50%)}.workplace-color-menu{z-index:20;background:#fff;border:1px solid #dfe5ec;border-radius:10px;align-items:center;gap:5px;padding:6px;display:flex;position:absolute;top:50%;left:calc(100% + 9px);transform:translateY(-50%);box-shadow:0 10px 28px #1018282b,0 2px 7px #1018281c}.workplace-color-menu button{border:3px solid #fff;border-radius:50%;flex:0 0 22px;width:22px;height:22px;padding:0;box-shadow:0 0 0 1px #cbd5e1}.workplace-color-menu button.selected{box-shadow:0 0 0 2px #1677ff}.timeline-row{touch-action:none;background-color:color-mix(in srgb, var(--row-color) 10%, white);background-image:linear-gradient(90deg,#0000 0 50%,#ffffff42 50% 100%);background-size:calc(200% / var(--columns)) 100%;border-bottom:1px solid #f3f3f2;min-height:0;position:relative}.timeline-row:nth-child(2n){background-color:color-mix(in srgb, var(--row-color) 14%, white)}.timeline-row.locked:after{content:"";cursor:not-allowed;z-index:5;background:#f8fafc6b;position:absolute;inset:0}.selection{border-radius:clamp(8px, calc(var(--schedule-row-height,26px) - 18px), 14px);z-index:2;cursor:pointer;color:#0568ec;height:max(24px,100% - 2px);font-size:clamp(9px, calc(var(--schedule-row-height,26px) - 17px), 15px);background:#1677ff20;border:1px dashed #1677ff;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.entry{align-items:center;gap:clamp(5px, calc(var(--schedule-row-height,26px) - 21px), 8px);z-index:3;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #cbd5e1;border-radius:8px;min-width:18px;height:max(24px,100% - 2px);padding:0 6px 0 24px;transition:left .105s cubic-bezier(.2,.8,.4,1),width .105s cubic-bezier(.2,.8,.4,1),box-shadow .15s;display:flex;position:absolute;top:50%;overflow:visible;transform:translateY(-50%);box-shadow:0 2px 7px #10182822,0 0 2px #10182816}.entry:hover{z-index:4;box-shadow:0 5px 12px #10182830,0 2px 4px #1018281f}.entry.entry-drag-preview{z-index:5;pointer-events:none;transition:left 35ms linear,width 35ms linear;box-shadow:0 7px 16px #10182838,0 2px 5px #10182820}.entry-text{text-overflow:ellipsis;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;max-height:100%;font-size:var(--entry-font-size,14px);pointer-events:none;line-height:1.15;overflow:hidden}.entry-inline-input{width:100%;min-width:0;height:calc(100% - 4px);padding:0 clamp(5px, calc(var(--schedule-row-height,26px) - 21px), 8px);outline:2px solid color-mix(in srgb, var(--entry-color) 45%, white);color:inherit;font-size:clamp(11px, calc(var(--schedule-row-height,26px) - 15px), 18px);-webkit-user-select:text;user-select:text;background:#fff;border:0;border-radius:999px}.drag-dot{cursor:grab;background:0 0;border:0;border-radius:5px;width:24px;height:max(44px,100%);padding:0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.drag-dot:after{content:"";width:14px;height:26px;max-height:calc(var(--schedule-row-height,30px) - 4px);background:var(--workplace-color);pointer-events:none;border-radius:5px;position:absolute;top:50%;left:5px;transform:translateY(-50%);box-shadow:0 1px 3px #10182830}.drag-dot:active{cursor:grabbing}.resize-handle{width:clamp(8px, calc(var(--schedule-row-height,26px) - 18px), 14px);opacity:0;cursor:ew-resize;background:0 0;border:0;padding:0;position:absolute;top:0;bottom:0}.entry:hover .resize-handle{opacity:1}.resize-handle:after{content:"";width:clamp(2px, calc(var(--schedule-row-height,26px) - 24px), 4px);background:#98a2b3;border-radius:2px;position:absolute;top:24%;bottom:24%;left:50%;transform:translate(-50%)}.resize-handle.left{right:calc(100% + 2px)}.resize-handle.right{left:calc(100% + 2px)}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:30;background:#10182852;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.editor-modal{background:#fff;border-radius:14px;width:min(520px,100%);padding:28px;position:relative;overflow:hidden;box-shadow:0 24px 70px #1018283d}.editor-accent{height:6px;position:absolute;top:0;left:0;right:0}.editor-modal h2{color:#1d2939;margin:0 0 4px}.editor-modal p{color:#98a2b3;margin:0 0 20px;font-size:12px}.editor-modal textarea{resize:vertical;color:#344054;border:1px solid #d0d5dd;border-radius:9px;outline:none;width:100%;min-height:110px;padding:12px}.editor-modal textarea:focus{border-color:#84adff;box-shadow:0 0 0 3px #1677ff1a}.editor-modal label{color:#667085;margin:16px 0 8px;font-size:12px;display:block}.close-button{color:#98a2b3;background:0 0;border:0;font-size:24px;position:absolute;top:14px;right:15px}.palette{gap:9px;display:flex}.palette button{border:3px solid #fff;border-radius:50%;width:26px;height:26px;box-shadow:0 0 0 1px #d0d5dd}.palette button.selected{box-shadow:0 0 0 2px #1677ff}.modal-actions{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:24px;padding-top:18px;display:flex}.modal-actions>div{gap:8px;display:flex}.secondary-button{background:#eef1f5}@media (width<=1050px){:root{--date-column-width:74px;--workplace-column-width:78px}body{min-width:0}.toolbar-title{min-width:150px}.tool-button>span,.sync-status-text{display:none}.help-icon{display:inline}.date-cell strong{font-size:34px}.calendar-strip{width:min(304px,100vw - 16px);max-height:calc(100vh - 58px);position:fixed;top:50px;left:50%}}@media (prefers-reduced-motion:reduce){.schedule-canvas{transition:none;transform:none}}.date-cell,.drag-dot,.resize-handle,.selection{touch-action:none}.schedule-scroll,.time-ruler-viewport{touch-action:none;overscroll-behavior:contain}.schedule-scroll.touch-scrolling .schedule-canvas{transform:translateY(var(--touch-rubber-offset,0px));transition:none}@media (prefers-reduced-motion:reduce){.schedule-scroll.touch-scrolling .schedule-canvas{transform:none}}.entry,.entry-text{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.entry-copy-menu{z-index:75;touch-action:manipulation;background:#fff;border:1px solid #cbd5e1;border-radius:12px;padding:4px;position:fixed;box-shadow:0 5px 20px #10182830}.entry-copy-menu button{color:#175cd3;background:#f2f6fc;border:0;border-radius:8px;width:100%;min-height:44px;padding:8px;font-size:15px}.entry-copy-menu button:active:not(:disabled){background:#d8eaff}.entry-copy-menu button:disabled{color:#667085}.entry-copy-menu [role=status]{color:#667085;padding:4px;font-size:12px;display:block}.entry-copy-menu [role=status]:empty{display:none}.entry-copy-menu .copy-success-announcement{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.virtual-keyboard{z-index:60;color:#344054;touch-action:none;-webkit-user-select:none;user-select:none;background:#e7ecf2;border-top:1px solid #bac6d3;flex-direction:column;padding:7px 12px 10px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -5px 20px #10182820}.keyboard-toolbar{flex:0 0 32px;align-items:center;gap:7px;margin-bottom:6px;display:flex}.keyboard-toolbar button{color:#344054;background:#f7f9fc;border:1px solid #c3ceda;border-radius:7px;padding:5px 10px;font-size:12px}.keyboard-languages{gap:4px;display:flex}.keyboard-message{color:#667085;text-align:center;flex:1;font-size:12px}.virtual-keyboard button[aria-pressed=true]{color:#175cd3;background:#d8eaff;border-color:#1677ff}.keyboard-keys{flex:1;grid-template-rows:repeat(5,minmax(0,1fr));gap:5px;width:min(1080px,100%);min-height:0;margin:0 auto;display:grid}.keyboard-row{justify-content:center;gap:5px;min-height:0;display:flex}.keyboard-row button{color:#25364c;touch-action:none;background:#fff;border:1px solid #c7d1dd;border-radius:7px;flex:1 1 0;min-width:0;max-width:90px;padding:0 3px;font-size:clamp(15px,1.5vw,24px);box-shadow:0 2px #c3ccd6}.keyboard-row button[data-key-active=true]:not(:disabled){background:#cbd3dd;box-shadow:0 1px #aeb9c6}.keyboard-row .keyboard-done[data-key-active=true]{background:#0958cf}.keyboard-row .keyboard-special{background:#dbe3ed;flex:1.5;max-width:125px}.keyboard-row .keyboard-space{flex:5;max-width:none;font-size:13px}.keyboard-row .keyboard-done{color:#fff;background:#1677ff;border-color:#1677ff;flex:2;max-width:160px;font-size:14px}.keyboard-settings{text-align:center;flex:1;min-height:0;padding:10px;overflow:auto}.keyboard-settings p{margin:0 0 12px;font-size:13px}.keyboard-settings button{background:#fff;border:1px solid #c3ceda;border-radius:8px;margin:4px;padding:10px 18px}.keyboard-settings-done{display:block;margin:10px auto!important}.modal-backdrop.with-keyboard{padding:10px;overflow:auto}.modal-backdrop.with-keyboard .editor-modal{max-height:100%;overflow-y:auto}.editor-modal>.keyboard-toggle{margin-bottom:8px}@media (width<=700px){.virtual-keyboard{padding:5px 4px 8px}.keyboard-row{gap:3px}.keyboard-row button{border-radius:5px;padding:0;font-size:14px}.keyboard-toolbar{gap:4px}.keyboard-toolbar button{padding:5px 7px;font-size:11px}.keyboard-message{font-size:10px}}.keyboard-keys{position:relative}.keyboard-keys button{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;position:relative}.keyboard-preview,.keyboard-variants{z-index:65;color:#17283c;pointer-events:none;box-sizing:border-box;background:#fff;border:1px solid #bac5d1;border-radius:10px;position:fixed;box-shadow:0 3px 10px #0003}.keyboard-preview{justify-content:center;align-items:center;height:54px;font-size:34px;line-height:1;display:flex}.keyboard-preview:after{content:"";background:#fff;border-bottom:1px solid #bac5d1;border-right:1px solid #bac5d1;width:8px;height:8px;position:absolute;bottom:-5px;left:calc(50% - 5px);transform:rotate(45deg)}.keyboard-variants{white-space:nowrap;padding:4px;display:flex}.keyboard-variants>span{border-radius:5px;flex:1;justify-content:center;align-items:center;min-width:0;height:42px;font-size:24px;display:inline-flex}.keyboard-variants>.selected{color:#fff;background:#246dd4}.keyboard-trackpad-hint{z-index:65;color:#fff;text-align:center;pointer-events:none;background:#344054;border-radius:8px;padding:6px;font-size:12px;position:absolute;bottom:calc(100% + 5px);left:0;right:0}html.mobile-device .mobile-input .schedule-scroll,html.mobile-device .mobile-input .schedule-scroll *{touch-action:pinch-zoom}.schedule-scroll{overflow:auto}.time-ruler-canvas,.schedule-canvas{width:max(100%, calc(var(--date-column-width) + var(--workplace-column-width) + var(--timeline-min-width)));min-width:100%}.entry-inline-input{font-size:var(--entry-font-size,14px)}.entry.touch-selected{z-index:9;border-color:#1677ff;box-shadow:0 0 0 2px #1677ff40}.entry.touch-selected .resize-handle{opacity:1;z-index:2;width:32px;height:max(44px,100%);top:50%;bottom:auto;transform:translateY(-50%)}.entry.touch-selected .resize-handle.left{left:auto;right:calc(100% + 2px)}.entry.touch-selected .resize-handle.right{left:calc(100% + 2px);right:auto}.entry.touch-selected .resize-handle:after{background:#1677ff;border:2px solid #fff;border-radius:6px;width:10px;height:28px;top:50%;bottom:auto;transform:translate(-50%,-50%);box-shadow:0 1px 4px #10182855}@media (width<=700px){.toolbar{gap:4px;padding:4px}.toolbar-title{display:none}.app-shell{--date-column-width:56px;--workplace-column-width:74px}.schedule-toolbar{flex-wrap:nowrap;gap:3px}.schedule-toolbar .brand{border-radius:8px;flex:0 0 24px;width:24px;height:24px;font-size:10px}.schedule-toolbar .toolbar-actions{flex-wrap:nowrap;flex:none;gap:3px}.schedule-toolbar .tool-button,.schedule-toolbar .primary-button{flex:0 0 32px;justify-content:center;align-items:center;width:32px;height:32px;min-height:32px;padding:0;font-size:22px;line-height:1;display:flex}.schedule-toolbar .tool-button>span,.schedule-toolbar .primary-button>span{display:none}.schedule-toolbar .history-button{flex-basis:clamp(44px,12vw,48px);width:clamp(44px,12vw,48px);height:44px;font-size:32px}.schedule-toolbar .history-icon{width:28px;height:28px}.schedule-toolbar .help-icon{font-size:24px;display:inline}.schedule-toolbar .sync-status{margin:0 3px}.date-cell>span{font-size:11px}.workplace-label,.workplace-name-input{max-width:68px;padding-left:5px;padding-right:5px;font-size:12px}.compact-control{flex-wrap:wrap}}html.mobile-device .time-ruler-viewport,html.mobile-device .time-ruler-viewport *{touch-action:pinch-zoom}.app-shell{min-width:0}.timeline-row{-webkit-touch-callout:none}.app-shell[data-pointer-type=touch] .entry:not(.touch-selected) .resize-handle{opacity:0;pointer-events:none}.schedule-canvas:after{content:"";pointer-events:none;width:36px;height:1px;position:absolute;top:0;left:100%}.day.disabled-day-with-notes{grid-template-columns:var(--date-column-width) var(--workplace-column-width) minmax(0, 1fr)}.disabled-day-with-notes .disabled-day-summary{border-bottom:0;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:0;padding:0 3px;display:flex}.disabled-day-with-notes .timeline-row{background:#f7f8fa;border-bottom:0}.help-dialog{background:#fff;border-radius:14px;width:min(760px,100%);max-height:calc(100svh - 32px);padding:20px;font-size:14px;line-height:1.5;overflow:auto;box-shadow:0 12px 40px #10182833}.help-dialog header{z-index:1;background:#fff;justify-content:space-between;align-items:center;gap:16px;padding:8px 0;display:flex;position:sticky;top:-20px}.help-dialog h2{margin:0;font-size:20px}.help-dialog h3{margin:20px 0 6px;font-size:16px}.help-dialog p{margin:6px 0}.help-dialog ul{margin:6px 0;padding-left:22px}.help-dialog li{margin:7px 0}.app-shell{--panel-date-font-size:13px}.panel-width-probe{visibility:hidden;pointer-events:none;width:max-content;font-size:var(--panel-date-font-size);font-variant-numeric:tabular-nums;position:absolute}.day-panel,.ruler-panel{z-index:12;min-height:0;width:var(--panel-width,calc(var(--date-column-width) + var(--workplace-column-width)));transform:translateX(var(--panel-scroll,0px));background:#f3f3f2;grid-column:1/3;position:relative}.panel-expanded,.ruler-panel{grid-template-columns:var(--date-column-width) var(--workplace-column-width);grid-template-rows:minmax(0,1fr);display:grid}.panel-expanded{width:calc(var(--date-column-width) + var(--workplace-column-width));height:100%}.ruler-panel{background:#fff}.app-shell[data-mode=schedule] .day-panel,.ruler-panel{overflow:hidden}.panel-expanded,.ruler-panel>div{opacity:clamp(0, calc(1 - var(--panel-progress,0) * 1.5), 1)}.panel-compact{color:#4f5358;opacity:clamp(0, calc((var(--panel-progress,0) - .2) * 1.25), 1);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;padding:1px 3px;display:flex;position:absolute;inset:0}.compact-day-heading{align-items:center;line-height:1;display:flex}.compact-day-heading strong{font-size:min(30px, calc(var(--panel-min-width,36px) - 12px));text-transform:capitalize;font-weight:400;line-height:1}.compact-date{font-size:var(--panel-date-font-size);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:6px;line-height:1}.compact-workplaces{grid-template-rows:repeat(var(--workplace-count), minmax(0, 1fr));align-items:center;width:3px;display:grid;position:absolute;top:0;bottom:0;right:0}.compact-workplaces i{width:3px;height:clamp(8px, calc(var(--schedule-row-height) - 8px), 22px);border-radius:9px}.weekend .panel-compact{color:#ef4d4d}.day.today .panel-compact{color:#067647;background:#12b76a28}.disabled-day .day-panel{background:#f7f8fa}.disabled-day .compact-day-heading strong{font-size:min(22px, calc(var(--schedule-row-height,30px) - var(--panel-date-font-size) - 3px))}.disabled-day .compact-date{margin-top:1px}.app-shell[data-panel-collapsed=true] .panel-expanded{pointer-events:none}.timeline-overlay{clip-path:inset(0 0 0 max(0px, calc(var(--panel-scroll,0px) + var(--panel-width,0px) - var(--date-column-width) - var(--workplace-column-width))))}@media (width<=700px){.app-shell{--panel-date-font-size:11px}}.grafik-login{color:#263c36;background:#f2f5f4;place-items:center;min-height:100dvh;padding:24px;display:grid}.grafik-login form{background:#fff;border:1px solid #dce4e0;border-radius:20px;width:min(100%,400px);padding:32px;box-shadow:0 16px 50px #19392b0a}.grafik-login-brand{letter-spacing:.16em;color:#5b8073;font-size:12px;font-weight:700}.grafik-login h1{margin:14px 0;font-size:28px}.grafik-login p{line-height:1.5}.grafik-login label{gap:8px;margin:20px 0;font-size:14px;display:grid}.grafik-login input{width:100%;min-width:0;font:inherit;border:1px solid #becdc6;border-radius:8px;padding:12px;font-size:16px}.grafik-login button{color:#fff;width:100%;font:inherit;cursor:pointer;background:#285e49;border:0;border-radius:8px;padding:13px}.grafik-login button:disabled{opacity:.6}.grafik-login-error{color:#a32323}.grafik-logout{z-index:100;font:inherit;color:#345348;cursor:pointer;background:#fff;border:1px solid #bccbc4;border-radius:6px;padding:5px 10px;font-size:12px;position:fixed;bottom:8px;right:12px}
