.react-grid-layout{transition:height .2s;position:relative}.react-grid-item{transition:left .2s,top .2s,width .2s,height .2s}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{z-index:1;will-change:width, height;transition:none}.react-grid-item.react-draggable-dragging{z-index:3;will-change:transform;transition:none}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{opacity:.2;z-index:2;-webkit-user-select:none;user-select:none;-o-user-select:none;background:red;transition-duration:.1s}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{width:20px;height:20px;position:absolute}.react-grid-item>.react-resizable-handle:after{content:"";border-bottom:2px solid #0006;border-right:2px solid #0006;width:5px;height:5px;position:absolute;bottom:3px;right:3px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{cursor:sw-resize;bottom:0;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{cursor:se-resize;bottom:0;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;top:0;left:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;top:0;right:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;margin-left:-10px;left:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}:root{--bg:#f2f2f7;--surface:#fff;--surface2:#f2f2f7;--line:#e5e5ea;--line2:#efeff4;--text:#1c1c1e;--muted:#6c6c70;--faint:#8e8e93;--ink:#1c1c1e;--onink:#fff;--sel:#e8f0fe;--hover:#f5f5fa;--edit:#0a84ff;--acc:#1a73e8;--now:#d93025;--red:#d50000;--yellow:#f6bf26;--green:#33b679;--blue:#039be5;--r:12px;--rs:8px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Roboto,Segoe UI,system-ui,sans-serif;font-size:13px;line-height:1.35}:root.dark{--bg:#0e0f11;--surface:#17181b;--surface2:#1e1f23;--line:#2a2c31;--line2:#222328;--text:#ecedef;--muted:#a3a6ad;--faint:#767980;--ink:#ecedef;--onink:#111214;--sel:#1f2839;--hover:#202227;--edit:#7fa2ff;--acc:#8ab4f8;--now:#ff6b5e}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg)}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.shell{grid-template-columns:80px minmax(0,1fr);height:100%;display:grid}.rail{background:var(--surface);border-right:.5px solid var(--line);flex-direction:column;align-items:center;gap:2px;padding:10px 0;display:flex;overflow-y:auto}.brand{color:var(--ink);flex-direction:column;align-items:center;gap:3px;margin:2px 0 12px;display:flex}.brand svg{width:46px;height:auto;display:block}.brand .tbar{gap:2px;width:46px;display:flex}.brand .tbar i{border-radius:1px;flex:1;height:2px}.navb{width:72px;color:var(--muted);border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:6px 0;font-size:11px;display:flex}.navb .ic{border-radius:14px;justify-content:center;align-items:center;width:44px;height:28px;display:flex}.navb:hover .ic{background:var(--hover)}.navb.on{color:var(--text);font-weight:600}.navb.on .ic{background:var(--sel);color:var(--acc)}.navb svg{width:20px;height:20px}.rail .sp{flex:1}.main{flex-direction:column;min-width:0;height:100%;display:flex}.top{border-bottom:.5px solid var(--line);background:var(--surface);align-items:center;gap:10px;min-height:56px;padding:10px 16px;display:flex}.top h1{margin:0;font-size:20px;font-weight:600}.top .grow{flex:1}.page{flex:1;padding:14px 16px 24px;overflow:auto}.btn{border:.5px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:16px;align-items:center;gap:6px;height:32px;padding:0 14px;font-weight:600;display:inline-flex}.btn:hover{background:var(--hover)}.btn.pri{background:var(--ink);color:var(--onink);border-color:var(--ink)}.btn.blue{background:var(--acc);border-color:var(--acc);color:#fff}.btn.red{background:var(--red);border-color:var(--red);color:#fff}.btn.ghost{background:0 0;border-color:#0000}.btn.sm{height:26px;padding:0 10px;font-size:12px}.icb{border:.5px solid var(--line);background:var(--surface);cursor:pointer;border-radius:16px;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.icb:hover{background:var(--hover)}.inp{border:1px solid var(--line);background:var(--surface);border-radius:9px;outline:none;min-width:0;height:34px;padding:0 10px}.inp:focus{border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 20%,transparent)}.search{border:1px solid var(--line);background:var(--surface2);height:38px;color:var(--muted);border-radius:10px;align-items:center;gap:8px;padding:0 12px;display:flex}.search input{color:var(--text);background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:14px}.chips{background:var(--surface2);border-radius:10px;gap:2px;padding:3px;display:flex}.chip{cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;height:26px;padding:0 10px;font-size:12.5px}.chip b{color:var(--faint);margin-left:3px;font-weight:600}.chip.on{background:var(--surface);font-weight:600;box-shadow:0 1px 3px #0000001f}.pill{white-space:nowrap;border-radius:10px;align-items:center;height:20px;padding:0 8px;font-size:11.5px;font-weight:600;display:inline-flex}.card{background:var(--surface);border:.5px solid var(--line);border-radius:var(--r)}.muted{color:var(--muted)}.faint{color:var(--faint)}.row{align-items:center;gap:8px;display:flex}.err{color:var(--red);font-size:12.5px}.login{justify-content:center;align-items:center;min-height:100%;padding:24px;display:flex}.login .box{flex-direction:column;gap:12px;width:360px;padding:28px;display:flex}.login .brand{margin:0 0 6px}.login .brand svg,.login .brand .tbar{width:72px}.login label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.wgrid .react-grid-item{transition:none}.wd{flex-direction:column;height:100%;display:flex;overflow:hidden}.wd .wh{border-bottom:.5px solid var(--line);cursor:move;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:8px 10px 8px 12px;display:flex}.wd .wh b{font-size:13px}.wd .wh small{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.wd .wb{flex:1;min-height:0;overflow:auto}.react-grid-item.react-grid-placeholder{border-radius:var(--r);background:var(--acc)!important;opacity:.12!important}.react-resizable-handle{cursor:se-resize;width:16px;height:16px;position:absolute;bottom:2px;right:2px}.react-resizable-handle:after{content:"";border-right:2px solid var(--faint);border-bottom:2px solid var(--faint);width:7px;height:7px;position:absolute;bottom:3px;right:3px}.kpis{flex-wrap:wrap;gap:8px;padding:10px;display:flex}.kpi{border:.5px solid var(--line);border-radius:10px;flex:120px;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.kpi b{font-size:22px}.kpi span{color:var(--muted);font-size:12px;line-height:1.2}.tbl{border-collapse:collapse;table-layout:fixed;width:100%}.tbl th{z-index:1;background:var(--surface);text-align:left;color:var(--muted);border-bottom:.5px solid var(--line);white-space:nowrap;text-overflow:ellipsis;padding:6px;font-size:11.5px;font-weight:600;position:sticky;top:0;overflow:hidden}.tbl td{border-bottom:.5px solid var(--line2);white-space:nowrap;text-overflow:ellipsis;vertical-align:middle;height:24px;padding:0 6px;overflow:hidden}.tbl tbody tr{cursor:default}.tbl tbody tr:hover td{background:var(--hover)}.tbl tbody tr.sel td{background:var(--sel)}.tbl tbody tr.sel td:first-child{box-shadow:inset 3px 0 0 var(--acc)}.tbl tbody tr.cxl td{color:var(--faint);text-decoration:line-through}.tbl tbody tr.past td{opacity:.6}.tbl .num{font-variant-numeric:tabular-nums}.tbl .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}.empty{text-align:center;color:var(--faint);padding:30px}.drawer{background:var(--surface);z-index:50;flex-direction:column;width:520px;max-width:100vw;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-10px 0 40px #0000002e}.drawer .dh{border-bottom:.5px solid var(--line);align-items:center;gap:8px;padding:14px 16px;display:flex}.drawer .dh b{flex:1;font-size:17px}.drawer .db{flex:1;grid-template-columns:1fr 1fr;align-content:start;gap:10px 12px;padding:14px 16px;display:grid;overflow:auto}.drawer .db label{color:var(--muted);flex-direction:column;gap:4px;font-size:11.5px;display:flex}.drawer .db label.full{grid-column:1/-1}.drawer .df{border-top:.5px solid var(--line);gap:8px;padding:12px 16px;display:flex}.toast{color:#fff;z-index:100;background:#202124f2;border-radius:10px;padding:10px 16px;font-weight:600;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.tbl td.c{text-overflow:clip;padding:0 4px;text-decoration:none!important}
