.ws-root{--ws-ink-amber:color-mix(in srgb, hsl(var(--status-amber)) 62%, hsl(var(--foreground)));--ws-ink-green:color-mix(in srgb, hsl(var(--status-green)) 82%, hsl(var(--foreground)));--ws-ink-red:color-mix(in srgb, hsl(var(--status-red)) 88%, hsl(var(--foreground)));--ws-ink-violet:color-mix(in srgb, hsl(var(--status-violet)) 85%, hsl(var(--foreground)));--ws-ink-blue:color-mix(in srgb, hsl(var(--status-blue)) 80%, hsl(var(--foreground)));background:hsl(var(--surface));height:100%;min-height:0;color:hsl(var(--foreground));flex-direction:column;flex:auto;font-size:13px;display:flex;position:relative}.ws-root button{font-family:inherit}.ws-toolbar{border-bottom:1px solid hsl(var(--border));background:hsl(var(--surface));z-index:5;flex-wrap:wrap;flex:none;align-items:center;gap:6px;padding:7px 12px;display:flex;position:relative}.ws-toolbar-right{align-items:center;gap:6px;margin-left:auto;display:flex}.ws-search{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--surface));width:184px;height:30px;transition:border-color var(--transition), box-shadow var(--transition);cursor:text;align-items:center;padding:0 6px 0 28px;display:inline-flex;position:relative}.ws-search:hover{border-color:hsl(var(--border-strong))}.ws-search:focus-within{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.ws-search-icon{color:hsl(var(--text-muted-2));pointer-events:none;position:absolute;left:9px}.ws-search-input{min-width:0;height:100%;font:inherit;color:hsl(var(--foreground));background:0 0;border:0;outline:none;flex:1;font-size:12.5px}.ws-search-input::placeholder{color:hsl(var(--text-muted-2))}.ws-search-input::-webkit-search-cancel-button{appearance:none}.ws-search-clear{border-radius:var(--radius-full);width:18px;height:18px;color:hsl(var(--text-muted));background:hsl(var(--surface-2));place-items:center;display:grid}.ws-search-clear:hover{color:hsl(var(--foreground));background:hsl(var(--border))}.ws-kbd{border:1px solid hsl(var(--border));background:hsl(var(--surface));min-width:17px;height:17px;color:hsl(var(--text-muted));font-family:var(--font-mono);border-bottom-width:2px;border-radius:4px;justify-content:center;align-items:center;padding:0 4px;font-size:10px;line-height:1;display:inline-flex}.ws-count{font-variant-numeric:tabular-nums;color:hsl(var(--text-muted));font-size:11.5px}.ws-status{align-items:center;gap:4px;display:inline-flex}.ws-chip-btn,.ws-status .ws-seg-btn{border:1px solid hsl(var(--border));border-radius:var(--radius-full);background:hsl(var(--surface));height:28px;color:hsl(var(--text-muted));white-space:nowrap;transition:background var(--transition), border-color var(--transition), color var(--transition);align-items:center;gap:5px;padding:0 9px;font-size:12.5px;font-weight:500;display:inline-flex}.ws-status .ws-seg-btn:hover{color:hsl(var(--foreground));border-color:hsl(var(--border-strong))}.ws-status .ws-seg-btn.is-active{color:hsl(var(--foreground));border-color:hsl(var(--primary) / .55);background:hsl(var(--primary-soft));box-shadow:inset 0 0 0 .5px hsl(var(--primary) / .4)}.ws-status .ws-seg-btn.is-active .ws-count{color:hsl(var(--foreground));font-weight:600}.ws-status .ws-seg-btn.is-todo.is-active{background:hsl(var(--status-slate-bg));border-color:hsl(var(--status-slate) / .55)}.ws-status .ws-seg-btn.is-done.is-active{background:hsl(var(--status-green-bg));border-color:hsl(var(--status-green) / .5)}.ws-status .ws-seg-btn.is-skipped.is-active{background:hsl(var(--status-amber-bg));border-color:hsl(var(--status-amber) / .6)}.ws-dot{background:hsl(var(--text-muted-2));border-radius:50%;flex:none;width:7px;height:7px}.ws-dot.is-todo{background:hsl(var(--status-slate))}.ws-dot.is-done{background:hsl(var(--status-green))}.ws-dot.is-skipped{background:hsl(var(--status-amber))}.ws-seg{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--surface-2));align-items:center;gap:2px;padding:2px;display:inline-flex}.ws-seg:not(.ws-status) .ws-seg-btn{border-radius:calc(var(--radius) - 2px);height:24px;color:hsl(var(--text-muted));white-space:nowrap;transition:background var(--transition), color var(--transition), box-shadow var(--transition);align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:500;display:inline-flex}.ws-seg:not(.ws-status) .ws-seg-btn:hover{color:hsl(var(--foreground))}.ws-seg:not(.ws-status) .ws-seg-btn.is-active{background:hsl(var(--surface));color:hsl(var(--foreground));box-shadow:var(--shadow-sm), 0 0 0 1px hsl(var(--border))}.ws-pop{display:inline-flex;position:relative}.ws-menu-btn,.ws-toggle{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--surface));max-width:230px;height:30px;color:hsl(var(--foreground));white-space:nowrap;transition:background var(--transition), border-color var(--transition);align-items:center;gap:6px;padding:0 9px;font-size:12.5px;font-weight:500;display:inline-flex}.ws-menu-btn:hover,.ws-toggle:hover{border-color:hsl(var(--border-strong));background:hsl(var(--surface-2))}.ws-menu-btn>svg:first-child,.ws-toggle>svg:first-child{color:hsl(var(--text-muted));flex:none}.ws-menu-btn.is-set{border-color:hsl(var(--primary) / .45);background:hsl(var(--primary-soft))}.ws-menu-label{text-overflow:ellipsis;overflow:hidden}.ws-menu-caret{color:hsl(var(--text-muted));flex:none}.ws-pop-panel{z-index:40;border:1px solid hsl(var(--border));border-radius:var(--radius-lg);background:hsl(var(--surface));min-width:220px;box-shadow:var(--shadow-lg);padding:4px;position:absolute;top:calc(100% + 6px);left:0}.ws-pop-panel.is-right{left:auto;right:0}.ws-cat-panel{overscroll-behavior:contain;width:300px;max-height:min(70vh,560px);overflow-y:auto}.ws-menu{flex-direction:column;display:flex}.ws-menu-row{align-items:stretch;gap:2px;display:flex}.ws-menu-row .ws-menu-item{flex:1;min-width:0}.ws-menu-item{border-radius:var(--radius-sm);width:100%;min-height:28px;color:hsl(var(--foreground));text-align:left;justify-content:space-between;align-items:center;gap:16px;padding:4px 8px;font-size:12.5px;display:flex}.ws-menu-item:hover,.ws-menu-item:focus-visible{background:hsl(var(--surface-2));outline:none}.ws-menu-item.is-active{background:hsl(var(--primary-soft));font-weight:600}.ws-menu-item.is-empty{color:hsl(var(--text-muted-2))}.ws-menu-item.is-sub{padding-left:22px;font-size:12px}.ws-menu-expand{border-radius:var(--radius-sm);width:26px;color:hsl(var(--text-muted));flex:none;place-items:center;display:grid}.ws-menu-expand:hover{background:hsl(var(--surface-2));color:hsl(var(--foreground))}.ws-menu-expand svg{transition:transform var(--transition)}.ws-menu-expand.is-open svg{transform:rotate(90deg)}.ws-menu-sep{background:hsl(var(--border-subtle));height:1px;margin:4px 2px}.ws-toggle.is-active{border-color:hsl(var(--status-violet) / .45);background:hsl(var(--status-violet-bg))}.ws-switch{border-radius:var(--radius-full);background:hsl(var(--border-strong));width:24px;height:14px;transition:background var(--transition);flex:none;position:relative}.ws-switch:after{content:"";background:hsl(var(--surface));width:10px;height:10px;transition:transform var(--transition);border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0f162440}.ws-toggle.is-active .ws-switch{background:hsl(var(--status-violet))}.ws-toggle.is-active .ws-switch:after{transform:translate(10px)}.ws-progress{border-radius:var(--radius);height:30px;color:hsl(var(--text-muted));white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:0 6px;font-size:12.5px;display:inline-flex}.ws-progress.is-button:hover{background:hsl(var(--surface-2));border-color:hsl(var(--border))}.ws-progress-label{color:hsl(var(--foreground));font-weight:600}.ws-progress-text{font-variant-numeric:tabular-nums}.ws-bar{border-radius:var(--radius-full);background:hsl(var(--surface-2));width:52px;height:6px;box-shadow:inset 0 0 0 1px hsl(var(--border-subtle));flex:none;display:inline-flex;overflow:hidden}.ws-bar-done{background:hsl(var(--status-green))}.ws-bar-skipped{background:hsl(var(--status-amber))}.ws-team-panel{width:380px;padding:10px 12px}.ws-team-title{letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:hsl(var(--text-muted));margin-bottom:6px;font-size:11px;font-weight:600}.ws-team-table{font-variant-numeric:tabular-nums;width:100%;font-size:12.5px}.ws-team-table th,.ws-team-table td{border-bottom:1px solid hsl(var(--border-subtle));text-transform:none;letter-spacing:normal;text-align:right;color:hsl(var(--foreground));background:0 0;padding:5px 6px;font-size:12.5px;position:static}.ws-team-table thead th{color:hsl(var(--text-muted));font-size:11px;font-weight:600}.ws-team-table th[scope=row],.ws-team-table thead th:first-child{text-align:left;font-weight:600}.ws-team-table tbody tr{cursor:default}.ws-team-table tbody tr:hover td,.ws-team-table tbody tr:hover th{background:hsl(var(--surface-2))}.ws-team-bar{white-space:nowrap}.ws-team-bar .ws-bar{vertical-align:middle;width:56px}.ws-team-pct{min-width:32px;color:hsl(var(--text-muted));margin-left:6px;font-size:11.5px;display:inline-block}.ws-team-note{color:hsl(var(--text-muted-2));margin-top:6px;font-size:11px}.ws-save{border-radius:var(--radius-full);height:26px;color:hsl(var(--text-muted));white-space:nowrap;align-items:center;gap:5px;padding:0 8px;font-size:12px;font-weight:500;display:inline-flex}.ws-save.is-saved svg{color:hsl(var(--status-green))}.ws-save-dot{background:currentColor;border-radius:50%;width:7px;height:7px}.ws-save.is-saving .ws-save-dot{background:hsl(var(--status-blue));animation:1s ease-in-out infinite ws-pulse}.ws-save.is-failed{border:1px solid hsl(var(--status-red) / .35);background:hsl(var(--status-red-bg));color:var(--ws-ink-red);cursor:pointer}.ws-save.is-failed:hover{border-color:hsl(var(--status-red) / .6)}@keyframes ws-pulse{0%,to{opacity:1}50%{opacity:.35}}.ws-notice{border:1px solid hsl(var(--status-amber) / .5);border-radius:var(--radius-full);background:hsl(var(--status-amber-bg));height:26px;color:var(--ws-ink-amber);align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.ws-icon-btn{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--surface));width:30px;height:30px;color:hsl(var(--text-muted));transition:background var(--transition), color var(--transition), border-color var(--transition);flex:none;place-items:center;display:grid}.ws-icon-btn:hover{color:hsl(var(--foreground));background:hsl(var(--surface-2));border-color:hsl(var(--border-strong))}.ws-icon-btn:disabled{opacity:.6;cursor:progress}.ws-icon-btn.is-busy svg{animation:.9s linear infinite ws-spin}@keyframes ws-spin{to{transform:rotate(360deg)}}.ws-root :is(button,a,input):focus-visible{outline:2px solid hsl(var(--ring));outline-offset:1px}.ws-search-input:focus-visible{outline:none}.ws-grid{flex:1 1 0;min-height:0;position:relative}.ws-grid .ag-root-wrapper{border:0}.ws-grid .ag-header-cell-text{letter-spacing:.01em;font-size:11.5px}.ws-grid .ag-cell{align-items:center;display:flex}.ws-grid .ag-cell>.ag-cell-value,.ws-grid .ag-cell-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ws-grid .ag-right-aligned-cell{justify-content:flex-end}.ws-grid .ws-col-photo{justify-content:center;padding-left:0;padding-right:0}.ws-grid .ws-col-num,.ws-grid .ws-col-money{font-variant-numeric:tabular-nums}.ws-grid .ws-col-name{font-weight:500}.ws-grid .ws-muted{color:hsl(var(--text-muted))}.ws-grid .ws-derived{color:hsl(var(--text-muted-2))}.ws-grid .ag-row.ws-row-done{background-color:color-mix(in srgb, hsl(var(--status-green-bg)) 70%, hsl(var(--surface)))}.ws-grid .ag-row.ws-row-skipped .ag-cell{color:hsl(var(--text-muted-2))}.ws-grid .ag-row.ws-row-dup{background-color:hsl(var(--surface-2))}.ws-grid .ag-row.ws-row-dup .ag-cell{color:hsl(var(--text-muted-2))}.ws-grid .ag-row.ws-row-dup .ws-col-name{text-decoration:line-through;-webkit-text-decoration-color:hsl(var(--text-muted-2));text-decoration-color:hsl(var(--text-muted-2))}.ws-grid .ag-cell.ws-cell-unsaved{background-color:hsl(var(--status-red-bg));box-shadow:inset 0 0 0 1px hsl(var(--status-red) / .45)}.ws-grid .ag-cell.ws-cell-unsaved:after{content:"";border-style:solid;border-width:0 7px 7px 0;border-color:transparent hsl(var(--status-red)) transparent transparent;position:absolute;top:0;right:0}.ws-thumb{border:1px solid hsl(var(--border));background:hsl(var(--surface-2));width:26px;height:26px;color:hsl(var(--text-muted-2));cursor:zoom-in;border-radius:5px;place-items:center;padding:0;display:grid;position:relative;overflow:visible}.ws-thumb img{object-fit:cover;border-radius:4px;width:100%;height:100%;display:block}.ws-thumb:hover{border-color:hsl(var(--primary) / .6);box-shadow:0 0 0 2px hsl(var(--ring) / .35)}.ws-thumb.is-empty{cursor:default;background:0 0;border-style:dashed}.ws-thumb.is-empty:hover{box-shadow:none;border-color:hsl(var(--border))}.ws-thumb-fallback{place-items:center;display:grid}.ws-thumb-count{border:1.5px solid hsl(var(--surface));border-radius:var(--radius-full);background:hsl(var(--foreground));min-width:14px;height:14px;color:hsl(var(--background));text-align:center;font-variant-numeric:tabular-nums;padding:0 3px;font-size:9px;font-weight:700;line-height:11px;position:absolute;bottom:-4px;right:-6px}.ws-cat-sub{color:hsl(var(--text-muted))}.ws-placeholder{color:hsl(var(--text-muted-2));font-style:italic}.ws-comps,.ws-find,.ws-flags{align-items:center;gap:4px;min-width:0;display:inline-flex;overflow:hidden}.ws-comps-note{color:var(--ws-ink-amber);flex:none;place-items:center;display:inline-grid}.ws-link-chip{border-radius:var(--radius-sm);background:hsl(var(--status-blue-bg));height:19px;color:var(--ws-ink-blue);white-space:nowrap;flex:none;align-items:center;padding:0 6px;font-size:11px;font-weight:500;text-decoration:none;display:inline-flex}.ws-link-chip:hover{text-decoration:underline}.ws-find-link{border:1px solid hsl(var(--border));border-radius:var(--radius-sm);background:hsl(var(--surface));height:19px;color:hsl(var(--text-muted));flex:none;align-items:center;padding:0 5px;font-size:10.5px;font-weight:600;text-decoration:none;display:inline-flex}.ws-find-link:hover{color:hsl(var(--foreground));border-color:hsl(var(--border-strong));background:hsl(var(--surface-2))}.ws-skip-text{color:var(--ws-ink-amber);font-weight:500}.ws-row-skipped .ws-skip-text{color:var(--ws-ink-amber)}.ws-dup-text{color:var(--ws-ink-violet);font-variant-numeric:tabular-nums;font-weight:500}.ws-flag{flex:none;place-items:center;display:inline-grid}.ws-flag.is-check{color:var(--ws-ink-amber)}.ws-flag.is-lot{color:var(--ws-ink-blue)}.ws-flag.is-client{color:hsl(var(--status-slate))}.ws-pill{border-radius:var(--radius-full);white-space:nowrap;align-items:center;height:19px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.ws-pill.is-todo{background:hsl(var(--status-slate-bg));color:hsl(var(--status-slate))}.ws-pill.is-done{background:hsl(var(--status-green-bg));color:var(--ws-ink-green)}.ws-pill.is-skipped{background:hsl(var(--status-amber-bg));color:var(--ws-ink-amber)}.ws-pill.is-dup{background:hsl(var(--status-violet-bg));color:var(--ws-ink-violet)}.ws-choice{border:1px solid hsl(var(--border));border-radius:var(--radius-lg);background:hsl(var(--surface));width:240px;box-shadow:var(--shadow-lg);padding:4px;font-size:12.5px}.ws-choice-input{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--surface));width:100%;height:28px;font:inherit;color:hsl(var(--foreground));outline:none;margin-bottom:4px;padding:0 8px;font-size:12.5px}.ws-choice-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.ws-choice-list{overscroll-behavior:contain;max-height:260px;position:relative;overflow-y:auto}.ws-choice-option{border-radius:var(--radius-sm);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;min-height:28px;padding:4px 8px;display:flex}.ws-choice-option.is-active{background:hsl(var(--primary-soft))}.ws-choice-option.is-clear{color:hsl(var(--text-muted))}.ws-choice-label{align-items:baseline;gap:6px;min-width:0;display:inline-flex}.ws-choice-hint{color:hsl(var(--text-muted-2));font-size:11px}.ws-choice-current{color:hsl(var(--text-muted-2));font-size:10.5px}.ws-choice-empty{color:hsl(var(--text-muted));padding:8px}.ws-grid .ag-large-text{border-radius:var(--radius-lg);background:hsl(var(--surface));box-shadow:var(--shadow-lg);padding:6px}.ws-grid .ag-large-text-input textarea{font-family:var(--font-sans);padding:6px 8px;font-size:12.5px;line-height:1.5}.ag-tooltip{white-space:pre-wrap;border-radius:var(--radius);max-width:440px;box-shadow:var(--shadow-md);padding:8px 10px;font-size:12px;line-height:1.45}.ws-empty{z-index:3;border:1px dashed hsl(var(--border));border-radius:var(--radius-lg);background:hsl(var(--surface));text-align:center;flex-direction:column;align-items:center;gap:6px;padding:22px 28px;display:flex;position:absolute;top:96px;left:50%;transform:translate(-50%)}.ws-empty-title{font-weight:600}.ws-empty-text{color:hsl(var(--text-muted));margin-bottom:6px;font-size:12.5px}.ws-footer{border-top:1px solid hsl(var(--border));background:hsl(var(--surface-2));height:28px;color:hsl(var(--text-muted));white-space:nowrap;flex:none;align-items:center;gap:14px;padding:0 12px;font-size:11.5px;display:flex;overflow:hidden}.ws-footer strong{color:hsl(var(--foreground));font-variant-numeric:tabular-nums;font-weight:600}.ws-footer-spacer{flex:1}.ws-footer-link{color:var(--ws-ink-blue);text-underline-offset:2px;font-size:11.5px;text-decoration:underline}.ws-hints{align-items:center;gap:12px;display:inline-flex}.ws-hints>span{align-items:center;gap:4px;display:inline-flex}@media (max-width:1100px){.ws-hints>span:nth-child(n+4){display:none}}@media (max-width:760px){.ws-hints{display:none}}.ws-selbar{z-index:30;border-radius:var(--radius-lg);background:hsl(var(--foreground));color:hsl(var(--background));box-shadow:var(--shadow-xl);white-space:nowrap;align-items:center;gap:6px;padding:6px 6px 6px 14px;font-size:12.5px;display:flex;position:absolute;bottom:44px;left:50%;transform:translate(-50%)}.ws-selbar-count strong{font-variant-numeric:tabular-nums}.ws-selbar-label{color:hsl(var(--background) / .7)}.ws-selbar-sep{background:hsl(var(--background) / .2);width:1px;height:18px;margin:0 4px}.ws-selbar-btn{border-radius:var(--radius);background:hsl(var(--background) / .1);height:26px;color:hsl(var(--background));padding:0 10px;font-size:12.5px;font-weight:500}.ws-selbar-btn:hover{background:hsl(var(--background) / .22)}.ws-selbar-btn.is-muted{color:hsl(var(--background) / .75)}.ws-selbar-clear{border-radius:var(--radius);height:32px;color:hsl(var(--background) / .75);align-items:center;gap:5px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.ws-selbar-clear:hover{background:hsl(var(--background) / .15);color:hsl(var(--background))}.ws-preview{z-index:60;border:1px solid hsl(var(--border));border-radius:var(--radius-lg);background:hsl(var(--surface));box-shadow:var(--shadow-xl);pointer-events:none;animation:90ms ease-out ws-fade-in;position:fixed;overflow:hidden}.ws-preview-img{background:hsl(var(--surface-2));place-items:center;display:grid}.ws-preview-img img{object-fit:contain;max-width:100%;max-height:100%;display:block}.ws-preview-missing{color:hsl(var(--text-muted-2));flex-direction:column;align-items:center;gap:6px;font-size:12px;display:flex}.ws-preview-caption{border-top:1px solid hsl(var(--border-subtle));flex-direction:column;gap:1px;padding:7px 10px 8px;display:flex}.ws-preview-name{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.ws-preview-meta{color:hsl(var(--text-muted));font-size:11px}@keyframes ws-fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}.ws-toast{z-index:70;border-radius:var(--radius-lg);background:hsl(var(--foreground));max-width:min(640px,100% - 32px);color:hsl(var(--background));box-shadow:var(--shadow-lg);align-items:center;gap:8px;padding:8px 14px;font-size:12.5px;font-weight:500;animation:.14s ease-out ws-fade-in;display:inline-flex;position:absolute;bottom:44px;left:50%;transform:translate(-50%)}.ws-toast.is-error{background:var(--ws-ink-red)}.ws-text-btn{border-radius:var(--radius);height:28px;color:hsl(var(--text-muted));white-space:nowrap;align-items:center;gap:4px;padding:0 8px;font-size:12.5px;font-weight:500;display:inline-flex}.ws-text-btn:hover{color:hsl(var(--foreground));background:hsl(var(--surface-2))}.ws-reset{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--surface));height:30px;color:hsl(var(--foreground));white-space:nowrap;transition:background var(--transition), border-color var(--transition), color var(--transition);align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:500;display:inline-flex}.ws-reset:hover{border-color:hsl(var(--border-strong));background:hsl(var(--surface-2))}.ws-reset-icon{color:hsl(var(--text-muted))}.ws-reset.is-modified{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.ws-reset.is-modified .ws-reset-icon{color:hsl(var(--primary-foreground))}.ws-reset.is-modified:hover{filter:brightness(1.12)}.ws-root{--ws-who-1:hsl(var(--status-blue));--ws-who-1-bg:hsl(var(--status-blue-bg));--ws-who-2:hsl(var(--status-violet));--ws-who-2-bg:hsl(var(--status-violet-bg));--ws-who-3:color-mix(in srgb, hsl(var(--status-green)) 55%, hsl(var(--status-blue)));--ws-who-3-bg:color-mix(in srgb, hsl(var(--status-green-bg)) 55%, hsl(var(--status-blue-bg)))}.ws-assignee{border-radius:var(--radius-full);white-space:nowrap;background:hsl(var(--surface-2));max-width:100%;height:21px;color:hsl(var(--text-muted));border:1px solid #0000;align-items:center;gap:5px;padding:0 8px 0 7px;font-size:11.5px;font-weight:600;display:inline-flex}.ws-assignee-dot{background:hsl(var(--text-muted-2));border-radius:50%;flex:none;width:7px;height:7px}.ws-assignee-label{text-overflow:ellipsis;overflow:hidden}.ws-assignee.is-1{background:var(--ws-who-1-bg);color:color-mix(in srgb, var(--ws-who-1) 80%, hsl(var(--foreground)))}.ws-assignee.is-1 .ws-assignee-dot{background:var(--ws-who-1)}.ws-assignee.is-2{background:var(--ws-who-2-bg);color:color-mix(in srgb, var(--ws-who-2) 85%, hsl(var(--foreground)))}.ws-assignee.is-2 .ws-assignee-dot{background:var(--ws-who-2)}.ws-assignee.is-3{background:var(--ws-who-3-bg);color:color-mix(in srgb, var(--ws-who-3) 75%, hsl(var(--foreground)))}.ws-assignee.is-3 .ws-assignee-dot{background:var(--ws-who-3)}.ws-assignee.is-none{border:1px dashed hsl(var(--border-strong));color:hsl(var(--text-muted));background:0 0}.ws-assignee.is-editable{cursor:pointer}.ws-assignee-caret{opacity:.7;flex:none;margin-left:1px}.ws-grid .ag-cell.ws-col-assigned.is-editable:hover .ws-assignee{border-color:currentColor}.ws-grid .ag-row.ws-row-dup .ws-assignee,.ws-grid .ag-row.ws-row-skipped .ws-assignee{opacity:.75}.ws-grid .ws-col-select{justify-content:center}.ws-grid .ag-header-cell.ws-col-select{padding-left:0;padding-right:0}.ws-grid .ag-header-cell.ws-col-select .ag-header-cell-comp-wrapper,.ws-grid .ag-header-cell.ws-col-select .ag-labeled{justify-content:center}.ws-grid .ag-checkbox-input-wrapper{width:15px;height:15px}.ws-selbar{gap:8px;padding:8px 8px 8px 16px;font-size:13px}.ws-selbar-btn{align-items:center;gap:7px;height:32px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.ws-selbar-btn .ws-assignee-dot{width:9px;height:9px}.ws-selbar-btn.is-1 .ws-assignee-dot{background:color-mix(in srgb, var(--ws-who-1) 70%, white)}.ws-selbar-btn.is-2 .ws-assignee-dot{background:color-mix(in srgb, var(--ws-who-2) 70%, white)}.ws-selbar-btn.is-3 .ws-assignee-dot{background:color-mix(in srgb, var(--ws-who-3) 70%, white)}.ws-selbar-btn.is-none .ws-assignee-dot{border:1.5px dashed hsl(var(--background) / .7);background:0 0}.ws-gallery{z-index:80;background:#0c1018;animation:.12s ease-out ws-fade-in;display:flex;position:fixed;inset:0}.ws-gal{flex:1;min-width:0;display:flex}.ws-gal-stage{color:#ffffffdb;flex-direction:column;flex:1;min-width:0;display:flex}.ws-gal-topbar{flex:none;align-items:center;gap:14px;height:46px;padding:0 16px;font-size:12.5px;display:flex}.ws-gal-topbar-spacer{flex:1}.ws-gal-counter{font-variant-numeric:tabular-nums;color:#ffffffeb;font-weight:600}.ws-gal-video{border-radius:var(--radius-full);color:#ffffffe6;background:#ffffff1a;align-items:center;gap:6px;height:24px;padding:0 9px;font-size:12px;display:inline-flex}.ws-gal-toplink{border-radius:var(--radius);color:#ffffffc7;align-items:center;gap:6px;height:28px;padding:0 10px;font-size:12.5px;text-decoration:none;display:inline-flex}.ws-gal-toplink:hover{color:#fff;background:#ffffff1a}.ws-gal-photo-wrap{flex:1;justify-content:center;align-items:center;min-height:0;padding:4px 64px 12px;display:flex;position:relative}.ws-gal-photo{cursor:zoom-in;width:100%;height:100%;position:relative;overflow:hidden}.ws-gal-photo.is-zoomed{cursor:zoom-out}.ws-gal-low,.ws-gal-full{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.ws-gal-low{filter:blur(2px);opacity:.9}.ws-gal-full{opacity:0;transition:opacity .12s ease-out}.ws-gal-full.is-loaded{opacity:1}.ws-gal-photo.is-zoomed .ws-gal-full{transition:opacity .12s ease-out;transform:scale(2.4)}.ws-gal-photo.is-zoomed .ws-gal-low{opacity:0}.ws-gal-nophoto{color:#ffffff8c;flex-direction:column;align-items:center;gap:10px;font-size:13px;display:flex}.ws-gal-arrow{border-radius:var(--radius-lg);color:#ffffffd1;width:44px;height:64px;transition:background var(--transition), color var(--transition);background:#ffffff0f;place-items:center;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.ws-gal-arrow:hover{color:#fff;background:#ffffff29}.ws-gal-arrow.is-left{left:12px}.ws-gal-arrow.is-right{right:12px}.ws-gal-strip{flex:none;justify-content:center;gap:6px;padding:8px 16px 14px;display:flex;overflow-x:auto}.ws-gal-thumb{border-radius:var(--radius);opacity:.55;width:56px;height:56px;transition:opacity var(--transition), border-color var(--transition);border:2px solid #0000;flex:none;padding:0;position:relative;overflow:hidden}.ws-gal-thumb:hover{opacity:.9}.ws-gal-thumb.is-active{opacity:1;border-color:#fff}.ws-gal-thumb img{object-fit:cover;width:100%;height:100%;display:block}.ws-gal-thumb-video{color:#fff;background:#000000a6;border-radius:4px;place-items:center;width:16px;height:16px;display:grid;position:absolute;bottom:3px;right:3px}.ws-gal-panel{background:hsl(var(--surface));width:420px;max-width:46vw;color:hsl(var(--foreground));box-shadow:var(--shadow-xl);flex-direction:column;flex:none;display:flex}.ws-gal-head{border-bottom:1px solid hsl(var(--border));flex:none;align-items:center;gap:8px;height:46px;padding:0 8px 0 16px;display:flex}.ws-gal-ids{color:hsl(var(--text-muted));font-variant-numeric:tabular-nums;align-items:baseline;gap:8px;font-size:12px;display:inline-flex}.ws-gal-no{color:hsl(var(--foreground));font-size:13px;font-weight:700}.ws-gal-head-spacer{flex:1}.ws-gal-pos{color:hsl(var(--text-muted));font-variant-numeric:tabular-nums;margin-right:2px;font-size:11.5px}.ws-gal-iconbtn{border-radius:var(--radius);width:30px;height:30px;color:hsl(var(--text-muted));place-items:center;display:grid}.ws-gal-iconbtn:hover{background:hsl(var(--surface-2));color:hsl(var(--foreground))}.ws-gal-body{overscroll-behavior:contain;flex:1;min-height:0;padding:14px 16px 16px;overflow-y:auto}.ws-gal-title{letter-spacing:var(--letter-spacing-tight);font-size:16px;line-height:1.3}.ws-gal-facts{border:1px solid hsl(var(--border-subtle));border-radius:var(--radius-lg);background:hsl(var(--surface-2) / .6);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;margin:12px 0 0;padding:10px 12px;display:grid}.ws-gal-facts>div{min-width:0}.ws-gal-facts>div.is-wide{grid-column:span 2}.ws-gal-facts dt{letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:hsl(var(--text-muted));font-size:10.5px;font-weight:600}.ws-gal-facts dd{text-overflow:ellipsis;margin:1px 0 0;font-size:13px;font-weight:500;overflow:hidden}.ws-gal-notes{flex-direction:column;gap:6px;margin-top:10px;display:flex}.ws-gal-note{border-radius:var(--radius);align-items:flex-start;gap:8px;padding:8px 10px;font-size:12.5px;line-height:1.45;display:flex}.ws-gal-note svg{flex:none;margin-top:2px}.ws-gal-note.is-check{background:hsl(var(--status-amber-bg));color:var(--ws-ink-amber)}.ws-gal-note.is-lot{background:hsl(var(--status-blue-bg));color:var(--ws-ink-blue)}.ws-gal-note.is-client{background:hsl(var(--status-slate-bg));color:hsl(var(--foreground))}.ws-gal-note.is-dup{background:hsl(var(--status-violet-bg));color:var(--ws-ink-violet)}.ws-gal-desc{color:hsl(var(--foreground) / .86);margin-top:10px;font-size:12.5px;line-height:1.55}.ws-gal-desc p{margin:0}.ws-gal-desc p.is-clamped{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ws-gal-more{color:var(--ws-ink-blue);margin-top:2px;font-size:12px}.ws-gal-more:hover{text-decoration:underline}.ws-gal-form{border-top:1px solid hsl(var(--border));flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;display:flex}.ws-gal-row{gap:8px;display:grid}.ws-gal-row.is-3{grid-template-columns:1.2fr 1fr 1fr}.ws-gal-row.is-skip{grid-template-columns:1.1fr 1.4fr .7fr}.ws-field{flex-direction:column;gap:4px;min-width:0;display:flex}.ws-field-label{letter-spacing:var(--letter-spacing-wide);text-transform:uppercase;color:hsl(var(--text-muted));font-size:10.5px;font-weight:600}.ws-field-label-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.ws-field-hint{text-transform:none;letter-spacing:normal;color:hsl(var(--text-muted-2));font-weight:500}.ws-input{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--surface));width:100%;height:32px;color:hsl(var(--foreground));font:inherit;transition:border-color var(--transition), box-shadow var(--transition);outline:none;padding:0 9px;font-size:13px}.ws-input:hover{border-color:hsl(var(--border-strong))}.ws-input:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary) / .12)}.ws-input:disabled{background:hsl(var(--surface-2));color:hsl(var(--text-muted-2))}.ws-input.is-money{font-variant-numeric:tabular-nums;text-align:right}.ws-input::placeholder{color:hsl(var(--text-muted-2))}select.ws-input{padding-right:4px}.ws-textarea{resize:vertical;height:auto;min-height:52px;padding:6px 9px;line-height:1.45}.ws-gal-find{text-transform:none;letter-spacing:normal;color:hsl(var(--text-muted));align-items:baseline;gap:8px;font-size:11.5px;font-weight:500;display:inline-flex}.ws-gal-find a{color:var(--ws-ink-blue);font-weight:600;text-decoration:none}.ws-gal-find a:hover{text-decoration:underline}.ws-gal-earlier{border:1px solid hsl(var(--status-amber) / .35);border-radius:var(--radius);background:hsl(var(--status-amber-bg) / .6);font-size:12px}.ws-gal-earlier summary{color:var(--ws-ink-amber);cursor:pointer;align-items:center;gap:6px;padding:5px 9px;font-weight:600;list-style:none;display:flex}.ws-gal-earlier summary::-webkit-details-marker{display:none}.ws-gal-earlier p{white-space:pre-wrap;color:hsl(var(--foreground) / .86);margin:0;padding:0 9px 8px;line-height:1.45}.ws-gal-foot{border-top:1px solid hsl(var(--border));background:hsl(var(--surface));flex:none;padding:10px 16px 12px}.ws-gal-error{border-radius:var(--radius);background:hsl(var(--status-red-bg));color:var(--ws-ink-red);align-items:center;gap:6px;margin-bottom:8px;padding:6px 9px;font-size:12.5px;display:flex}.ws-gal-actions{align-items:center;gap:8px;display:flex}.ws-gal-state{min-width:0;color:hsl(var(--text-muted));text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.ws-gal-state.is-failed{color:var(--ws-ink-red)}.ws-gal-state.is-saved{color:var(--ws-ink-green)}.ws-gal-btn{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--surface));height:34px;color:hsl(var(--foreground));align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex}.ws-gal-btn:hover{background:hsl(var(--surface-2));border-color:hsl(var(--border-strong))}.ws-gal-btn.is-primary{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-weight:600}.ws-gal-btn.is-primary:hover{filter:brightness(1.12)}.ws-kbd.is-dark{color:#ffffffe6;background:#ffffff1f;border-color:#ffffff4d}.ws-gal-hints{color:hsl(var(--text-muted));flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:11px;display:flex}.ws-gal-hints>span{align-items:center;gap:3px;display:inline-flex}@media (max-width:900px){.ws-gal{flex-direction:column}.ws-gal-stage{flex:0 0 46%}.ws-gal-panel{flex:1;width:100%;max-width:none;min-height:0}.ws-gal-photo-wrap{padding:4px 52px 8px}}
