.coverage-strip{border:var(--border);background:var(--paper);box-shadow:var(--shadow);border-radius:10px;overflow:hidden}.coverage-strip__scroller{overflow-x:auto}.coverage-strip__summary{border-bottom:3px solid var(--ink);background:var(--paper-2);align-items:center;gap:12px;width:min(100%,100vw);padding:10px 16px;display:flex;position:sticky;left:0}.coverage-strip__score{color:var(--danger-dark);align-items:baseline;gap:8px;font-weight:800;display:flex}.coverage-strip__score .pixel{font-size:24px}.coverage-strip__score--ok{color:var(--success-dark)}.coverage-strip__row{border-bottom:2px dashed #2a1f2d26;display:flex}.coverage-strip__label{z-index:2;border-right:3px solid var(--ink);background:var(--paper);flex:0 0 220px;align-items:center;gap:8px;width:220px;padding:6px 12px 6px 16px;display:flex;position:sticky;left:0}.coverage-strip__dot{border:2px solid var(--ink);border-radius:3px;flex-shrink:0;width:14px;height:14px}.coverage-strip__names{flex-direction:column;flex:1;min-width:0;font-size:13px;line-height:1.2;display:flex}.coverage-strip__names strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.coverage-strip__names span{color:var(--ink-muted);font-size:11px;font-weight:700}.coverage-strip__mark{font-family:var(--font-pixel);font-size:16px}.coverage-strip__mark--ok{color:var(--success-dark)}.coverage-strip__mark--bad{color:var(--danger)}.coverage-strip__track{flex-shrink:0;height:51px;position:relative}.coverage-strip__required,.coverage-strip__covered,.coverage-strip__gap{border-radius:3px;height:16px;position:absolute;top:18px}.coverage-strip__required{background:#2a1f2d14}.coverage-strip__covered{border:2px solid var(--ink);opacity:.85}.coverage-strip__gap{border:2px solid var(--danger-dark);background:repeating-linear-gradient(45deg,#e25b4fd9 0 4px,#e25b4f59 4px 8px);height:22px;animation:1.6s ease-in-out infinite tu-alarm;top:15px}.pixel-icon{vertical-align:middle;flex-shrink:0;display:inline-block}.pixel-avatar{border:3px solid var(--ink);background:#fdf2dc;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.pixel-avatar--success{border-color:var(--success)}.pixel-avatar--warning{border-color:var(--warning-dark)}.pixel-avatar--danger{border-color:var(--danger)}.pixel-avatar--ghost{opacity:.55;filter:grayscale(.8)}.worker-sprite{image-rendering:pixelated;display:block;overflow:visible}.ws-shadow{fill:#2a1f2d2e}.ws-mist rect,.ws-steam rect{fill:#fff;stroke:#9fd8ee;stroke-width:.3px}.ws--idle .ws-body,.ws--wait .ws-body,.ws--break .ws-body{animation:1.6s steps(2,end) infinite ws-breathe}.ws--walk .ws-body{animation:.32s steps(2,end) infinite ws-bob}.ws--walk .ws-legs{animation:.32s step-end infinite ws-frame-a}.ws--walk .ws-legs-alt{animation:.32s step-end infinite ws-frame-b}.ws-item--mop{animation:.8s ease-in-out infinite alternate ws-mop}.ws-item--rag{animation:.9s linear infinite ws-rag}.ws-item--brush{animation:.24s ease-in-out infinite alternate ws-scrub}.ws-item--spray{animation:.9s steps(2,end) infinite ws-squeeze}.ws-item--vacuum{animation:1s ease-in-out infinite alternate ws-vacuum}.ws-item--bag{animation:1.2s ease-in-out infinite alternate ws-swing}.ws--hurry .ws-item{animation-duration:.35s}.ws--work .ws-body,.ws--sweat .ws-body{animation:.8s steps(2,end) infinite ws-bob}.ws-mist rect{animation:.9s ease-out infinite ws-puff}.ws-mist rect:nth-child(2){animation-delay:.2s}.ws-mist rect:nth-child(3){animation-delay:.4s}.ws-steam rect{animation:1.4s ease-out infinite ws-steam}.ws-steam rect:nth-child(2){animation-delay:.6s}.ws-sweat rect{animation:.9s ease-in infinite ws-drip}.ws-sweat rect:nth-child(2){animation-delay:.45s}.ws--wave .ws-body{animation:.5s ease-in-out infinite alternate ws-hop}.ws--ghost{opacity:.5;filter:grayscale(.85)}.ws--ghost .ws-body{animation:2.4s ease-in-out infinite ws-float}.ws-bubble{transform-origin:20px 7px;animation:.3s ease-out both tu-pop}.ws-bubble--alert{animation:.8s steps(2,end) infinite ws-bubble-alarm}.ws-hourglass{transform-origin:21px 3.5px;animation:2s step-end infinite ws-hourglass}@keyframes ws-breathe{50%{transform:translateY(.5px)}}@keyframes ws-bob{50%{transform:translateY(-1px)}}@keyframes ws-frame-a{0%{opacity:1}50%{opacity:0}}@keyframes ws-frame-b{0%{opacity:0}50%{opacity:1}}@keyframes ws-mop{0%{transform:translate(-2px)rotate(-8deg)}to{transform:translate(2px)rotate(8deg)}}@keyframes ws-rag{0%{transform:translate(0)}25%{transform:translate(2px,-1px)}50%{transform:translate(1px,-3px)}75%{transform:translate(-1px,-1px)}to{transform:translate(0)}}@keyframes ws-scrub{0%{transform:translate(-1px)}to{transform:translate(2px)}}@keyframes ws-squeeze{50%{transform:translateY(1px)}}@keyframes ws-vacuum{0%{transform:translate(-3px)}to{transform:translate(2px)}}@keyframes ws-swing{0%{transform:rotate(-10deg)}to{transform:rotate(10deg)}}@keyframes ws-puff{0%{opacity:0;transform:translate(-3px)}40%{opacity:1}to{opacity:0;transform:translate(2px,-1px)}}@keyframes ws-steam{0%{opacity:0;transform:translateY(2px)}40%{opacity:1}to{opacity:0;transform:translateY(-3px)}}@keyframes ws-drip{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(3px)}}@keyframes ws-hop{0%{transform:translateY(0)}to{transform:translateY(-2px)}}@keyframes ws-float{50%{transform:translateY(-1.5px)}}@keyframes ws-bubble-alarm{50%{transform:translateY(-.5px)}}@keyframes ws-hourglass{50%{transform:rotate(180deg)}}.dirt-layer{pointer-events:none;position:absolute;inset:0}.task-plate{border:3px solid var(--ink);background:var(--paper);box-shadow:0 3px 0 var(--ink);color:var(--ink);touch-action:manipulation;border-radius:8px;outline:none;transition:box-shadow .15s,transform .15s,filter .2s;display:flex;position:absolute;overflow:hidden}.task-plate--editable{cursor:grab;touch-action:none}.task-plate:focus-visible,.task-plate--selected{box-shadow:0 3px 0 var(--ink), 0 0 0 4px var(--primary);z-index:3}.task-plate__floor{background:linear-gradient(135deg, #ffffff59 0 25%, transparent 25% 50%, #ffffff59 50% 75%, transparent 75%) 0 0 / 16px 16px, color-mix(in srgb, var(--zone) 32%, #f3e6cc);position:absolute;inset:0}.task-plate--dirty .task-plate__floor{filter:saturate(.7)brightness(.94)}.task-plate--planned{filter:saturate(.75)}.task-plate--virtual{border-style:dashed}.task-plate--clean .task-plate__floor{background:linear-gradient(135deg, #fff9 0 25%, transparent 25% 50%, #fff9 50% 75%, transparent 75%) 0 0 / 16px 16px, color-mix(in srgb, var(--zone) 18%, var(--clean))}.task-plate--available{animation:1.6s ease-in-out infinite tu-pulse}.task-plate--not_taken,.task-plate--overdue{border-color:var(--danger-dark);animation:1.2s ease-in-out infinite tu-alarm}.task-plate--overdue .task-plate__floor{background-color:color-mix(in srgb, var(--danger) 22%, #f3e6cc)}.task-plate--rework{border-color:var(--danger)}.task-plate--accepted{border-color:var(--success-dark)}.task-plate__dirt--wiping{animation:.85s ease-in forwards plate-wipe}@keyframes plate-wipe{0%{clip-path:inset(0)}to{clip-path:inset(0 0 0 100%)}}.task-plate--vertical .task-plate__dirt--wiping{animation-name:plate-wipe-down}@keyframes plate-wipe-down{0%{clip-path:inset(0)}to{clip-path:inset(100% 0 0)}}.task-plate__shine{pointer-events:none;position:absolute;inset:0}.task-plate__sparkle{filter:drop-shadow(0 0 1px #2a1f2d99);background:linear-gradient(#fff,#fff) 50%/2px 8px no-repeat,linear-gradient(#fff,#fff) 50%/8px 2px no-repeat;width:8px;height:8px;animation:1.8s ease-in-out infinite tu-twinkle;position:absolute}.task-plate__content{flex-direction:column;justify-content:center;gap:3px;width:100%;min-width:0;padding:6px 26px 6px 10px;display:flex;position:relative}.task-plate--compact .task-plate__content{padding:5px 6px}.task-plate__title{-webkit-line-clamp:2;text-shadow:0 1px #ffffffd9,0 -1px #fff9;-webkit-box-orient:vertical;flex-shrink:0;font-size:14px;font-weight:800;line-height:1.15;display:-webkit-box;overflow:hidden}.task-plate--compact .task-plate__title{font-size:12px}.task-plate--tiny .task-plate__content{align-items:center;padding:4px}.task-plate--tiny .task-plate__title{-webkit-line-clamp:3;text-align:center;font-size:11px}.task-plate__meta{max-height:34px;color:var(--ink-soft);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:4px 8px;font-size:12px;font-weight:700;display:flex;overflow:hidden}.task-plate__time{font-family:var(--font-pixel);color:var(--ink);background:#fffaf0d9;border-radius:3px;padding:0 4px}.task-plate__photos{align-items:center;gap:2px;display:inline-flex}.task-plate__badge{border:2px solid var(--ink);background:var(--paper);width:22px;height:22px;color:var(--ink);border-radius:5px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:4px;right:4px}.task-plate__badge--warning{background:var(--warning)}.task-plate__badge--danger{background:var(--danger);color:#fff}.task-plate__badge--success{background:var(--success);color:#fff}.task-plate__badge--info{background:#d8e8fa}.task-plate__late{font-family:var(--font-pixel);color:var(--danger-dark);font-size:14px;position:absolute;bottom:4px;right:6px}.task-plate__progress{background:repeating-linear-gradient(90deg, var(--primary) 0 6px, #7fb3ea 6px 12px);border-top:2px solid var(--ink);height:5px;transition:width 1s linear;position:absolute;bottom:0;left:0}.task-plate--vertical .task-plate__progress{border-top:none;border-right:2px solid var(--ink);background:repeating-linear-gradient(180deg, var(--primary) 0 6px, #7fb3ea 6px 12px);width:5px;transition:height 1s linear;top:0;bottom:auto}.task-plate__handle{cursor:ew-resize;z-index:2;touch-action:none;width:10px;position:absolute;top:0;bottom:0}.task-plate__handle:after{content:"";border-left:2px solid var(--ink);border-right:2px solid var(--ink);opacity:0;width:4px;height:18px;transition:opacity .15s;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.task-plate:hover .task-plate__handle:after,.task-plate--selected .task-plate__handle:after{opacity:.7}.task-plate__handle--start{left:-2px}.task-plate__handle--end{right:-2px}.route-lane{min-width:0;display:flex}.route-lane--horizontal{border-bottom:3px dashed #2a1f2d2e}.route-lane--vertical{flex-direction:column}.route-lane__header{z-index:6;background:var(--paper);border-right:3px solid var(--ink);flex-direction:column;flex:0 0 220px;justify-content:center;gap:6px;width:220px;padding:10px 12px 10px 16px;display:flex;position:sticky;left:0;overflow:hidden}.route-lane__header--clickable{cursor:pointer}.route-lane__stripe{background:var(--route);border-right:2px solid var(--ink);width:7px;position:absolute;top:0;bottom:0;left:0}.route-lane__who{align-items:center;gap:10px;min-width:0;display:flex}.route-lane__empty-slot{border:3px dashed var(--ink-muted);width:42px;height:42px;font-family:var(--font-pixel);color:var(--ink-muted);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:inline-flex}.route-lane__names{flex-direction:column;min-width:0;display:flex}.route-lane__title{font-family:var(--font-pixel);white-space:nowrap;text-overflow:ellipsis;font-size:16px;overflow:hidden}.route-lane__worker{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.route-lane__status{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.route-lane__subtitle{color:var(--ink-muted);font-size:12px;font-weight:700}.route-lane__track{flex-shrink:0;position:relative}.route-lane--vertical .route-lane__track{width:100%}.route-lane__door{border:3px solid var(--ink);opacity:.55;background:repeating-linear-gradient(90deg,#c99a63 0 6px,#b88550 6px 8px);border-bottom:none;border-radius:6px 6px 0 0;width:40px;height:74px;position:absolute;top:18px;left:8px}.route-lane__gap{color:var(--ink-muted);border:2px dashed #2a1f2d40;border-radius:8px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;position:absolute}.route-lane__ghost{z-index:4;border:3px dashed var(--primary-dark);font-family:var(--font-body);text-align:center;pointer-events:none;background:#4f8fd62e;border-radius:8px;justify-content:center;align-items:center;padding:4px;font-size:12px;font-weight:800;display:flex;position:absolute}.route-lane__ghost--invalid{border-color:var(--danger);color:var(--danger-dark);background:#e25b4f2e}.task-plate--lifted{opacity:.35}.route-lane__character{z-index:5;pointer-events:none;transition-property:transform;transition-timing-function:linear;position:absolute;top:0;left:0}.route-lane--horizontal .route-lane__character{top:auto;bottom:6px}.route-lane--vertical .route-lane__character{left:-6px}.route-lane__placeholder{height:82px;color:var(--ink-muted);border:3px dashed #2a1f2d4d;border-radius:8px;justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;top:14px;left:60px;right:64px}.route-board{border:var(--border);min-width:0;box-shadow:var(--shadow);background:#f7eedb;border-radius:10px;position:relative;overflow:hidden}.route-board--vertical{box-shadow:none;background:0 0;border:none;overflow:visible}.route-board__scroller{overflow:auto hidden}.route-board--vertical .route-board__scroller{overflow:visible}.route-board__inner{min-width:100%;position:relative}.route-board__axis{z-index:7;border-bottom:3px solid var(--ink);background:var(--paper-2);height:34px;display:flex;position:sticky;top:0}.route-board__corner{z-index:8;border-right:3px solid var(--ink);background:var(--paper-3);font-family:var(--font-body);flex:0 0 220px;align-items:center;padding:0 16px;font-size:13px;font-weight:900;display:flex;position:sticky;left:0}.route-board__ticks{flex-shrink:0;position:relative}.route-board__night{z-index:4;float:right;border:2px solid var(--ink);background:var(--paper);width:22px;height:22px;color:var(--ink);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;margin:5px 6px 0 0;padding:0;display:inline-flex;position:sticky;right:6px}.route-board__night:hover{background:var(--warning)}.route-board__tick{font-family:var(--font-pixel);color:var(--ink-soft);font-size:13px;position:absolute;top:7px;transform:translate(-50%)}.route-board__tick:after{content:"";background:var(--ink-soft);width:2px;height:6px;position:absolute;top:20px;left:50%}.route-board__now{z-index:6;pointer-events:none;position:absolute}.route-board--horizontal .route-board__now{background:var(--danger);width:3px;margin-left:-1px;top:30px;bottom:0;box-shadow:0 0 0 1px #fff9}.route-board--vertical .route-board__now{background:var(--danger);height:3px;right:0}.route-board__now-label{border:2px solid var(--ink);background:var(--danger);color:#fff;font-family:var(--font-pixel);white-space:nowrap;border-radius:4px;padding:1px 5px;font-size:12px;position:absolute}.route-board--horizontal .route-board__now-label{top:-2px;left:50%;transform:translate(-50%)}.route-board--vertical .route-board__now-label{top:-11px;right:0}.route-board__empty{text-align:center;color:var(--ink-muted);padding:40px;font-weight:700}.game-button{--btn-bg:var(--paper);--btn-fg:var(--ink);--btn-edge:var(--ink);border:3px solid var(--ink);border-radius:var(--radius);background:var(--btn-bg);min-height:40px;color:var(--btn-fg);box-shadow:0 4px 0 var(--btn-edge);font-family:var(--font-body);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;justify-content:center;align-items:center;gap:8px;padding:6px 16px;font-size:15px;font-weight:800;line-height:1.1;text-decoration:none;transition:transform 60ms,box-shadow 60ms,filter .12s;display:inline-flex}.game-button:hover:not(:disabled){filter:brightness(1.05)}.game-button:active:not(:disabled){box-shadow:0 1px 0 var(--btn-edge);transform:translateY(3px)}.game-button:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.game-button:disabled,.game-button[aria-disabled=true]{cursor:not-allowed;filter:grayscale(.6);opacity:.6}.game-button--primary{--btn-bg:var(--primary);--btn-fg:#fff;--btn-edge:var(--primary-dark);border-color:var(--ink)}.game-button--success{--btn-bg:var(--success);--btn-fg:#fff;--btn-edge:var(--success-dark)}.game-button--warning{--btn-bg:var(--warning);--btn-fg:var(--ink);--btn-edge:var(--warning-dark)}.game-button--danger{--btn-bg:var(--danger);--btn-fg:#fff;--btn-edge:var(--danger-dark)}.game-button--ghost{--btn-bg:transparent;box-shadow:none;border-color:#0000}.game-button--ghost:hover:not(:disabled){background:#2a1f2d0f}.game-button--ghost:active:not(:disabled){box-shadow:none;transform:none}.game-button--sm{min-height:30px;box-shadow:0 3px 0 var(--btn-edge);border-width:2px;padding:3px 10px;font-size:13px}.game-button--lg{min-height:48px;padding:8px 22px;font-size:18px}.game-button--xl{min-height:64px;box-shadow:0 6px 0 var(--btn-edge);padding:10px 26px;font-size:22px}.game-button--xl:active:not(:disabled){transform:translateY(5px)}.game-button--icon-only{aspect-ratio:1;padding:4px}.game-button--icon-only.game-button--sm{padding:2px}.game-button--block{width:100%;display:flex}.game-button__label{white-space:nowrap}.game-button__spinner{border:3px solid;border-right-color:#0000;border-radius:2px;width:16px;height:16px;animation:.7s steps(4,end) infinite game-spin}@keyframes game-spin{to{transform:rotate(360deg)}}.game-field{flex-direction:column;gap:4px;min-width:0;display:flex}.game-field__label{color:var(--ink-soft);font-size:13px;font-weight:800}.game-field__control{border:3px solid var(--ink);border-radius:var(--radius);width:100%;min-height:42px;color:var(--ink);font:inherit;background:#fff;padding:8px 12px;font-size:16px;box-shadow:inset 0 3px #2a1f2d14}.game-field__control--multiline{resize:vertical;min-height:80px}.game-field__control:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #4f8fd64d}.game-field--error .game-field__control{border-color:var(--danger);animation:.25s 2 tu-shake}.game-field__error{color:var(--danger-dark);font-size:13px;font-weight:700}.game-field__hint{color:var(--ink-muted);font-size:12px}.game-modal{z-index:900;background:#2a1f2d8c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.game-modal__window{background:var(--paper);border:var(--border);width:100%;max-height:calc(100dvh - 32px);box-shadow:0 8px 0 var(--ink);border-radius:10px;flex-direction:column;display:flex}.game-modal__window--sm{max-width:420px}.game-modal__window--md{max-width:560px}.game-modal__window--lg{max-width:860px}.game-modal__window--xl{max-width:1100px}.game-modal__header{border-bottom:3px solid var(--ink);background:var(--paper-2);border-radius:7px 7px 0 0;align-items:center;gap:10px;padding:12px 14px;display:flex}.game-modal__title{flex:1;font-size:20px}.game-modal__close{border:2px solid var(--ink);background:var(--paper);width:34px;height:34px;color:var(--ink);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.game-modal__close:hover{background:#fbd5d1}.game-modal__body{padding:16px;overflow:auto}.game-modal__footer{border-top:3px solid var(--ink);justify-content:flex-end;gap:10px;padding:12px 16px;display:flex}.game-modal-enter-active,.game-modal-leave-active{transition:opacity .15s}.game-modal-enter-active .game-modal__window{animation:.22s ease-out tu-pop}.game-modal-enter-from,.game-modal-leave-to{opacity:0}@media (width<=600px){.game-modal{align-items:flex-end;padding:0}.game-modal__window{max-height:92dvh;padding-bottom:var(--safe-bottom);border-bottom:none;border-radius:14px 14px 0 0}}.game-panel{background:var(--paper);border:var(--border);box-shadow:var(--shadow);border-radius:8px;min-width:0}.game-panel--parchment{background:var(--paper-2)}.game-panel--danger{background:#fff1ef}.game-panel__header{border-bottom:3px solid var(--ink);background:var(--paper-2);border-radius:5px 5px 0 0;align-items:center;gap:8px;padding:10px 14px;display:flex}.game-panel__title{flex:1;min-width:0;font-size:17px}.game-panel__actions{gap:6px;margin-left:auto;display:flex}.game-panel__body{padding:14px}.game-panel--flush .game-panel__body{padding:0}.game-segmented{flex-direction:column;gap:4px;display:flex}.game-segmented__items{flex-wrap:wrap;gap:6px;display:flex}.game-segmented__item{border:2px solid var(--ink);background:var(--paper);min-width:40px;min-height:36px;color:var(--ink);font-family:var(--font-body);cursor:pointer;box-shadow:0 3px 0 var(--ink);border-radius:6px;padding:4px 12px;font-size:13px;font-weight:800}.game-segmented__item:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.game-segmented__item--active{background:var(--warning)}.game-select__wrap{display:block;position:relative}.game-select__control{appearance:none;cursor:pointer;padding-right:32px}.game-select__arrow{pointer-events:none;font-size:14px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.toast-host{z-index:1000;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(440px,100vw - 24px);display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%)}.toast{border:3px solid var(--ink);background:var(--paper);width:100%;box-shadow:var(--shadow);pointer-events:auto;cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 14px;font-weight:700;display:flex}.toast__text{flex-direction:column;gap:2px;display:flex}.toast--success{background:#d6f3e3}.toast--error{background:#fbd5d1}.toast--warning{background:#fde9bf}.toast-enter-active,.toast-leave-active{transition:all .2s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(-12px)}
