.tg{margin:20px 0;padding:14px;border:1px solid #b9ded0;border-radius:14px;background:#fff;color:#123e33}.tgControls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tgControls>*{width:auto;max-width:220px}.tgControls label{display:flex;align-items:center;gap:6px}.tgControls input[type=checkbox]{width:auto}.tgScroll{direction:ltr;max-height:600px;overflow:auto;border:1px solid #d6e5df;border-radius:8px}.tg svg{max-width:none;font:11px sans-serif;display:block}.tg [data-tg-task]{cursor:pointer}.tg [data-tg-task]:hover{filter:brightness(.94)}.tg p{font-size:12px;line-height:1.9}

#tgCanvas{position:relative}.tgFrozen{position:sticky;left:0;top:auto;width:250px;height:0;z-index:4;direction:rtl}.tgFrozenInner{width:250px;background:white;border-right:1px solid #94a3b8;box-shadow:3px 0 8px #0001}.tgFrozenHead{height:60px;box-sizing:border-box;padding:18px 10px;background:#e4f4ed;font-weight:bold}.tgFrozenInner button{display:block;width:250px;height:48px;box-sizing:border-box;border:0;border-bottom:1px solid #e5eee9;border-radius:0;background:white;text-align:right;padding:4px 10px;color:#123e33}.tgFrozenInner button:nth-child(odd){background:#f4f9f7}.tgFrozenInner b,.tgFrozenInner small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tgFrozenInner small{font-size:10px;color:#59766d}

.tgMovable{cursor:grab;touch-action:none}.tgMovable:active,[draggable=true]:active{cursor:grabbing}
#workTimerFloat{position:fixed;bottom:22px;left:20px;z-index:30000;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;max-width:min(390px,calc(100vw - 40px));border:1px solid #0b8c6d;border-radius:12px;background:#f5fffb;color:#133e31;box-shadow:0 6px 22px #0004}
#workTimerFloat strong,#workTimerFloat div{width:100%}#workTimerFloat output{font:bold 20px monospace}#workTimerFloat button{padding:4px 9px}

.tgFrozenInner .tgLabelRow{display:flex;height:48px}
.tgFrozenInner .tgLabelRow button:first-child{flex:1;min-width:0;width:auto}
.tgFrozenInner .tgLabelRow .tgLock{flex:0 0 40px;width:40px;text-align:center;padding:0}
.tgFrozenInner .tgLock[aria-pressed=true]{background:#ffe4c3;color:#703600}
#taskGantt:fullscreen{padding:12px;background:#f4f9f7;overflow:auto}
#taskGantt:fullscreen .tg{margin:0}
#taskGantt:fullscreen .tgScroll{max-height:calc(100vh - 185px)}
#workTimerFloat{border:3px solid #f2a526;background:#104538;color:white;box-shadow:0 8px 28px #001b16a6}
#workTimerFloat output{background:#fff1cf;color:#472b00;padding:6px 8px;border-radius:6px;font-size:24px}
#workTimerFloat #workTimerTitle{flex-basis:100%;text-align:right;text-decoration:underline;font-weight:800}
#workTimerFloat [data-timer-cmd=stop]{background:#ffd788;color:#472b00;font-weight:800}
#timerStopDialog{width:min(500px,90vw);padding:20px;border:2px solid #0b8c6d;border-radius:14px;color:#123e33;background:#fff}
#timerStopDialog::backdrop{background:#001d17a0}
#timerStopDialog textarea{width:100%;box-sizing:border-box}
#timerStopDialog form>div{display:flex;gap:8px;margin-top:12px}
#salesBasket .basketList,#salesBasket .basketDetail{margin-top:14px}
#salesBasket :is(th,td){white-space:normal;overflow-wrap:anywhere;padding:8px 10px;height:auto}
#salesBasket :is(th,td):not(:first-child){text-align:center}
.warrantySuggestionGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px}
.warrantySuggestionGrid article{padding:14px;border:1px solid #b9ded0;border-radius:12px}
.taskWorkflow{border:1px solid var(--theme-border,#b9ded0);border-radius:12px;padding:12px;margin-block:12px}.taskWorkflow li{margin-block:8px}.taskWorkflow small{display:block}
