@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_29f246d4-module__8Y_Bfa__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_29f246d4-module__8Y_Bfa__variable{--font-inter:"Inter", "Inter Fallback"}
@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.0e__wj8580tc5.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/e629b5bc06499d58-s.10u7vx61f1ie7.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1a099d89ee94ee96-s.35a5cae5tspm2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.18rizl4rsrl42.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_bbab2997-module__FMTFTa__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_bbab2997-module__FMTFTa__variable{--font-jakarta:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
:root{--bg-app:#f4f4f5;--surface:#fff;--subtle:#f8f8f9;--muted:#efeff1;--border:#e6e6e9;--border-strong:#d6d6db;--ink:#17171a;--ink-2:#55555e;--ink-3:#8b8b94;--icon:#2a2a2f;--accent:#2f6bf0;--on-accent:#fff;--positive:#1f8a4c;--negative:#d23b3b;--bar-track:#ececef;--r-btn:8px;--r-card:12px;--shadow-pop:0 12px 28px #17171a14;--shadow-dialog:0 24px 60px #17171a29}*{box-sizing:border-box}html,body{background:var(--bg-app);color:var(--ink);margin:0;padding:0}body{font-family:var(--font-inter), system-ui, sans-serif;-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{min-height:100vh;display:flex}.sidebar{background:var(--bg-app);flex-direction:column;flex:none;justify-content:space-between;width:248px;height:100vh;padding:20px 16px;display:flex;position:sticky;top:0}.sidebar .ws{align-items:center;gap:12px;padding:4px 8px 4px 4px;display:flex}.sidebar .ws b{font-size:15px;font-weight:600;display:block}.sidebar .ws small{color:var(--ink-3);font-size:12px;display:block}.nav-group{flex-direction:column;gap:4px;margin-top:24px;display:flex}.nav-label{color:var(--ink-3);padding:0 12px 6px;font-size:12px;font-weight:500}.nav-item{color:var(--ink-2);border:1px solid #0000;border-radius:8px;align-items:center;gap:12px;padding:9px 12px;display:flex}.nav-item:hover{background:var(--muted);color:var(--ink)}.nav-item.on{background:var(--surface);border-color:var(--border);color:var(--ink);font-weight:500}.user-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;padding:10px;display:flex}.user-card b{font-weight:500;display:block}.user-card small{color:var(--ink-3);font-size:12px;display:block}.main{background:var(--surface);border-left:1px solid var(--border);flex:1;min-width:0;min-height:100vh}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:68px;padding:0 32px;display:flex}.topbar h1{align-items:center;gap:12px;font-size:17px;font-weight:500;display:flex}.content{flex-direction:column;gap:24px;padding:28px 32px 48px;display:flex}.btn{border-radius:var(--r-btn);border:1px solid var(--border);background:var(--surface);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;height:36px;padding:0 14px;font-weight:500;display:inline-flex}.btn:hover{background:var(--subtle)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:#2a60d8}.btn-ghost{background:0 0;border-color:#0000}.btn-sm{height:30px;padding:0 10px;font-size:13px}.btn-icon{width:36px;padding:0}.btn-sm.btn-icon{width:30px}.btn svg{flex:none;width:16px;height:16px}.input,.select,.textarea{border:1px solid var(--border);background:var(--surface);border-radius:8px;outline:none;width:100%;height:38px;padding:0 12px}.textarea{resize:vertical;height:auto;padding:10px 12px;line-height:1.55}.input:focus,.select:focus,.textarea:focus{border-color:var(--ink-3)}.input.missing{background:var(--subtle)}.label{color:var(--ink-2);font-size:13px;font-weight:500}.caps{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-size:12px;font-weight:500}.muted{color:var(--ink-3)}.ink-2{color:var(--ink-2)}.neg{color:var(--negative)}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between;align-items:center;gap:12px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card)}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex}.card-head h2{font-size:15px;font-weight:500}.card-body{flex-direction:column;gap:14px;padding:20px;display:flex}.chip{background:var(--subtle);border:1px solid var(--border);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.chip .dot{background:var(--ink-3);border-radius:50%;width:6px;height:6px}.chip .dot.accent{background:var(--accent)}.chip svg{width:14px;height:14px}.seg{background:var(--subtle);border:1px solid var(--border);border-radius:10px;gap:4px;padding:4px;display:inline-flex}.seg a,.seg button{color:var(--ink-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;display:inline-flex}.seg .on{background:var(--surface);border-color:var(--border);color:var(--ink)}.seg svg{width:16px;height:16px}.tile{background:var(--subtle);border:1px solid var(--border);width:36px;height:36px;color:var(--icon);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.tile svg{width:18px;height:18px}.avatar{background:var(--muted);border:1px solid var(--border);width:32px;height:32px;color:var(--ink-2);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.avatar svg{width:16px;height:16px}.bar{background:var(--bar-track);border-radius:2px;flex:none;width:48px;height:4px;overflow:hidden}.bar>i{background:var(--ink);border-radius:2px;height:100%;display:block}.table{border-collapse:separate;border-spacing:0;width:100%}.table th{text-align:left;background:var(--subtle);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);white-space:nowrap;padding:12px 16px;font-size:12px;font-weight:500}.table th:first-child{border-top-left-radius:var(--r-card)}.table th:last-child{border-top-right-radius:var(--r-card)}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:14px 16px}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--subtle)}.table .name b{font-weight:500;display:block}.table .name small{color:var(--ink-3);font-size:12px;display:block}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;display:grid}.stat-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;font-weight:500;display:flex}.stat-head .tile{border-radius:8px;width:28px;height:28px}.stat-head .tile svg{width:14px;height:14px}.stat-body{padding:16px 16px 18px}.stat-body b{font-size:28px;font-weight:500;line-height:1.2;display:block}.stat-body small{color:var(--ink-3);font-size:12px}.overlay{z-index:50;background:#17171a66;justify-content:center;align-items:flex-start;padding:80px 16px;display:flex;position:fixed;inset:0;overflow:auto}.dialog{background:var(--surface);border:1px solid var(--border);width:100%;max-width:560px;box-shadow:var(--shadow-dialog);border-radius:16px}.dialog-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.dialog-head h2{font-size:17px;font-weight:500}.dialog-body{flex-direction:column;gap:16px;padding:20px;display:flex}.dialog-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.toast{z-index:60;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-pop);border-radius:12px;align-items:flex-start;gap:12px;max-width:420px;padding:14px 16px;display:flex;position:fixed;bottom:24px;right:24px}.toast b{font-weight:500;display:block}.toast small{color:var(--ink-2);font-size:13px;display:block}.toast svg{flex:none;width:18px;height:18px;margin-top:1px}.empty{text-align:center;color:var(--ink-3);padding:48px 20px}.note-box{background:var(--subtle);color:var(--ink-2);border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:13px;display:flex}.note-box svg{flex:none;width:16px;height:16px;margin-top:1px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;display:grid}.dropzone{border:1px dashed var(--border-strong);border-radius:var(--r-card);background:var(--subtle);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:6px;width:100%;padding:28px 20px;display:flex}.dropzone:hover{border-color:var(--ink-3)}.dropzone svg{width:22px;height:22px;color:var(--icon)}.dropzone b{font-weight:500}.dropzone small{color:var(--ink-3);max-width:420px;font-size:12px}.score{background:var(--subtle);border:1px solid var(--border);font-variant-numeric:tabular-nums;border-radius:8px;justify-content:center;align-items:center;min-width:36px;height:26px;padding:0 8px;font-weight:500;display:inline-flex}.score.high{background:var(--ink);border-color:var(--ink);color:#fff}.signals{flex-wrap:wrap;gap:6px;display:flex}.signals .chip{font-size:12px}.kv{grid-template-columns:140px 1fr;gap:10px 16px;display:grid}.kv dt{color:var(--ink-3);font-size:13px}.kv dd{margin:0}.source-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:20px;display:grid}.source-card .card-body{gap:10px}.source-card .meta{grid-template-columns:60px 1fr;gap:6px 12px;font-size:13px;display:grid}.source-card .meta span:nth-child(odd){color:var(--ink-3)}.source-foot{border-top:1px solid var(--border);color:var(--ink-2);justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;font-size:13px;display:flex}.wf{flex-direction:column;flex:1;min-height:0;display:flex}.wf-bar{border-bottom:1px solid var(--border);align-items:center;gap:12px;height:60px;padding:0 20px;display:flex}.wf-name{width:320px;font-weight:500}.wf-body{flex:1;min-height:0;display:flex}.wf-palette{border-right:1px solid var(--border);flex-direction:column;flex:none;gap:4px;width:200px;padding:16px 12px;display:flex;overflow:auto}.wf-add{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:6px 8px;display:flex}.wf-add:hover{background:var(--subtle);border-color:var(--border)}.wf-add .tile{border-color:#0000;width:30px;height:30px}.wf-add .tile svg{width:15px;height:15px}.wf-canvas{-webkit-user-select:none;user-select:none;background:var(--subtle);background-image:radial-gradient(var(--border-strong) 1px, transparent 1px);cursor:grab;touch-action:none;background-size:20px 20px;flex:1;min-width:0;position:relative;overflow:hidden}.wf-canvas:active{cursor:grabbing}.wf-world{transform-origin:0 0;position:absolute;top:0;left:0}.wf-edges{pointer-events:none;position:absolute;overflow:visible}.wf-node{background:var(--surface);border:1px solid var(--border);cursor:default;-webkit-user-select:none;user-select:none;border-radius:12px;flex-direction:column;gap:8px;padding:12px 14px;display:flex;position:absolute}.wf-node b{white-space:nowrap;text-overflow:ellipsis;font-weight:500;display:block;overflow:hidden}.wf-node small{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.wf-node .tile{border-color:#0000}.wf-node .tile svg{width:16px;height:16px}.wf-node.on{border-color:var(--ink);box-shadow:var(--shadow-pop)}.wf-node.target{cursor:pointer}.wf-node.target:hover{border-color:var(--accent)}.wf-preview{color:var(--ink-2);-webkit-line-clamp:2;white-space:pre-line;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.wf-port{border:2px solid var(--surface);background:var(--border-strong);cursor:crosshair;border-radius:50%;width:14px;height:14px;margin-top:-7px;padding:0;position:absolute;right:-7px}.wf-port:hover,.wf-port.on{background:var(--accent)}.wf-zoom{background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;padding:4px;font-size:13px;display:flex;position:absolute;bottom:16px;left:16px}.wf-hint{background:var(--ink);color:#fff;border-radius:999px;padding:8px 14px;font-size:13px;position:absolute;top:16px;left:50%;transform:translate(-50%)}.wf-panel{border-left:1px solid var(--border);background:var(--surface);flex:none;width:340px;overflow:auto}.todo{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:16px 20px;display:flex}.todo:last-child{border-bottom:0}
