@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-ext-400-normal-C8KGgusn.woff2) format("woff2"),url(/assets/instrument-sans-latin-ext-400-normal-BNHvxlaQ.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-sans-latin-400-normal-CzmC6WRw.woff2) format("woff2"),url(/assets/instrument-sans-latin-400-normal-D0WkGUGD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/instrument-sans-latin-ext-500-normal-DzNHCNPF.woff2) format("woff2"),url(/assets/instrument-sans-latin-ext-500-normal-Bw0sygUm.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/instrument-sans-latin-500-normal-BTxWeQzW.woff2) format("woff2"),url(/assets/instrument-sans-latin-500-normal-BSomXCLS.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-ext-600-normal-DQ2ihWIH.woff2) format("woff2"),url(/assets/instrument-sans-latin-ext-600-normal-D3H7-fz5.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/instrument-sans-latin-600-normal-WYR4DnIK.woff2) format("woff2"),url(/assets/instrument-sans-latin-600-normal-B7tOnwdb.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/instrument-sans-latin-ext-700-normal-8iQK2Ecr.woff2) format("woff2"),url(/assets/instrument-sans-latin-ext-700-normal-BowxTFnc.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/instrument-sans-latin-700-normal-CldEGCoB.woff2) format("woff2"),url(/assets/instrument-sans-latin-700-normal-BHChZheg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-400-normal-CIEtRijs.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-greek-400-normal-C190GLew.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-400-normal-CNojz0t3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-400-normal-BeU3T8wf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-400-normal-DHMOLxAi.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-400-normal-B11XCQ5g.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAASUABAAAAAACRAAAAQ3AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVEwAdBEICoRkg3oLIAABNgIkAzoEIAWFHgeBFAwHG3AHKB4HzukrRjyF5Gb4kQ/B873d17mv8TWkoqUUGaHodJCtoqntw7m8tiPWyGkfWDU/IMpzVk4zAs9Czv3c7Os5NvKFG1Ht9vBVXySRZpJc4tTrbM3sTRFcLa3zVboKWRIoAksKSKgqUQWEwlSoqjp44V5J9/kjd0+Fi5xaFjwJArgBAIJgIAgCCAI4CdNMqGuYXYUKdADLAkAAJwl6iX0+bZqEm1AH0Hu9rvrJHwxQG1Q/gFYwWYbgTRWgwEESVzbmtjQAt3DXO7Tu/+9Q/KNKWhTCgZ8fQSWoL0CUUgTBjgL8iEAcce7YHBeA8ZvogieCnxI0BCVeACCAAhBD/oDcAdUPABSgAX4kBPBTwjCAjwYSCneiqF65LUo/qXdYFrRwTujtMrKm07plTbSqLQFAiHBN7E4DG5wkiGXhCYBNETh3K/AciHN69iFfQjFOr9EXQQAAQXRNszs8PR0OH4fDV/dwGe76CHdj1MQa11DXYGcfZ6+B1X0OfwjY+i7KpQ1w9d+1z3/HydCB1f3U8A0fRFv+0bXxPWrZu3d9Nn4UcbLs/QCXLH/j3PCKblKOiZxLOR78W9brPo7eGTLz/F27ZPmePQdCB1YP4nJU91o4gU9cy64L3c3SPu8GfDn6ZXD2cGmllVqSxtD5vCXHm5xaeHlnpffx7DcPvXog5NnjA//cPz2btsz3yf+0MI8ri33tuv7upNbYmW5STbosW8bYItV/SPzxvXC0KnpWnFdC91oojit5Lyo6WcJQ1YzwBYbi52ohJVpcxfcHBqsv0nFz8U74rzS6M7r0RVlXZ3jJC4G92O//7Lm78VOtnUx+aQxAzsqPnrRr1t9zDrezKePvZ027x+fGte4s4NXu7/jEp3G9cM1bICYgACbuETUUD5wmenGXA/IBpAKVrl0AEJ5cqr6Q89tGq+SpqkDfX2DtG+pZ9teuae0AX98c301CX179InyErnSG8WCiABB4HFbVrw/lpTdBIOk82nXbpHKoQGyBpUovAAD4XQA8ZTUCeBJHIpI0v0FRrgcnckV3ANckrwYJKXEihQfdSKPER6XeExmEeEMmSe6QBwWmkZdmSOSthhibgIkBlUYreBKd/0NeVAE9WAyEaQpH6KikDWlUVg43Jy2FOmaYlsZhDEGZXO3mWEyWHI6zuaJkMlcSQ9k4F+KidIiFyZItGDc7r1pUj6wP6zrWB0/fbeeFeHl4YOvETMNiM8Ny+7OO6Qh2wur20YVxFts5dlORdl5Kwd5utR7SRcxqX8RA5Ehacha76hg7c6yzNm/Xf6vOLNrv544lIEkWg7xWo/ItBAeIJEmt0XgBwgM8gTifoiiLJroYYooNTeziEKe4zOoR/wvIKp89hSr+6jFAqw/LaonjmZHSscMNg4iPlWpFrO1RN3zkMU+/xUP+JQ99TbvTl1Vg0gtirT6lbwYAAAA=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-cyrillic-500-normal-DmUKJPL_.woff2) format("woff2"),url(/assets/jetbrains-mono-cyrillic-500-normal-CIOHU3Xd.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-greek-500-normal-JpySY46c.woff2) format("woff2"),url(/assets/jetbrains-mono-greek-500-normal-CtHEZ2Bp.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/jetbrains-mono-vietnamese-500-normal-D74nanfL.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-ext-500-normal-Cut-4mMH.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-ext-500-normal-BcGe3QHD.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-DNWG5JNy.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground: #f6f6f3;--panel: #ffffff;--panel-2: #fbfbf9;--ink: #17191c;--ink-2: #3a3f47;--muted: #5b616b;--line: #e4e4df;--line-2: #ecece7;--line-3: #f0f0ec;--line-strong: #dadad4;--field: #c9cbd0;--seg: #efefea;--accent: #2450d8;--accent-ink: #1a3ba3;--accent-soft: #eaf0fd;--danger: #b42318;--ok: #3d6b3f;--font: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--radius: 8px;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ground);color:var(--ink);font:400 14px/1.4 var(--font)}a{color:var(--accent)}a:hover{color:var(--accent-ink)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.mono{font-family:var(--mono);font-size:12px}.btn{height:36px;padding:0 12px;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn:hover{border-color:var(--field);background:#fafaf8}.btn.strong{border-color:var(--field);font-weight:600}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600;height:38px;padding:0 16px}.btn.primary:hover{background:#2b2e33}.btn.blue{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;height:44px;padding:0 20px}.btn.blue:hover{background:var(--accent-ink)}.btn.big{height:44px;padding:0 18px;font-weight:600}.btn:disabled{opacity:.45;cursor:default}.icon-btn{width:36px;height:36px;border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);display:grid;place-items:center;padding:0}.icon-btn.ghost{border-color:transparent;background:transparent}.icon-btn.ghost:hover,.icon-btn:hover{background:#f2f2ee}.icon-btn:disabled{opacity:.35;cursor:default;background:transparent}.link-btn{border:0;background:transparent;color:var(--accent);font-weight:600;padding:6px 4px;display:inline-flex;align-items:center;gap:6px}.link-btn:hover{color:var(--accent-ink)}.seg{display:flex;background:var(--seg);border-radius:10px;padding:3px}.seg button,.seg a{height:30px;padding:0 12px;border:0;background:transparent;border-radius:7px;color:var(--ink-2);font-size:13px;text-decoration:none;display:inline-flex;align-items:center}.seg [aria-pressed=true],.seg [aria-current=page]{background:var(--panel);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #00000014}.seg.lg button,.seg.lg a{height:32px;padding:0 14px;font-size:14px}.switch{width:30px;height:18px;border-radius:9px;background:var(--field);display:flex;align-items:center;padding:2px;transition:background .15s}.switch:after{content:"";width:14px;height:14px;border-radius:7px;background:#fff;transition:transform .15s}[aria-pressed=true]>.switch{background:var(--accent)}[aria-pressed=true]>.switch:after{transform:translate(12px)}.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.field input,.field select,.field textarea,.input{height:38px;border:1px solid var(--field);border-radius:var(--radius);padding:0 10px;background:var(--panel);color:var(--ink);font-size:14px;min-width:0}.field textarea{height:auto;padding:10px;resize:vertical}.field input.mono{font:500 13px var(--mono)}.app{display:flex;flex-direction:column;height:100%;min-height:560px}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:700;font-size:17px;letter-spacing:-.01em}.crumbs{display:flex;align-items:center;gap:8px;color:var(--muted);min-width:0}.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--ink)}.title-input{border:1px solid transparent;background:transparent;font-weight:600;color:var(--ink);padding:4px 6px;border-radius:6px;min-width:80px;max-width:360px}.title-input:hover{border-color:var(--line)}.title-input:focus{border-color:var(--field);background:var(--panel);outline:none}.save-state{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ok)}.save-state.busy{color:var(--muted)}.spacer{flex:1}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 20px;border-bottom:1px solid var(--line);background:var(--panel-2)}.toolbar .label{color:var(--muted);font-size:13px}.toolbar .sep{width:1px;height:24px;background:var(--line)}.group{display:flex;align-items:center;gap:8px}.workspace{flex:1;display:flex;flex-wrap:wrap;min-height:0}.scroller{flex:999 1 560px;min-width:0;height:100%;overflow:auto;position:relative;background:var(--panel)}.canvas{display:flex;width:max-content;min-width:100%}.footer{display:flex;flex-wrap:wrap;gap:6px 20px;align-items:center;padding:8px 20px;background:var(--panel);border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.footer strong{color:var(--ink)}.grid{position:sticky;left:0;z-index:3;background:var(--panel);border-right:1px solid var(--line-strong);box-shadow:4px 0 8px -6px #0000001f;flex:none}.grid.alone{position:static;box-shadow:none;flex:1}.grid.sized{overflow-x:clip}.grid-resize{position:absolute;top:0;bottom:0;right:-1px;width:7px;z-index:7;cursor:col-resize;touch-action:none}.grid-resize:hover,.grid-resize:active{background:linear-gradient(to right,transparent 3px,var(--accent) 3px,var(--accent) 5px,transparent 5px)}.grid-head,.grid-row{display:grid;align-items:center}.grid-head{position:sticky;top:0;z-index:6;height:calc(var(--head-h, 56px) * var(--row-scale, 1));align-items:end;padding-bottom:10px;background:var(--panel);border-bottom:1px solid var(--line-strong);font-size:12px;font-weight:600;color:var(--muted)}.grid-row{height:calc(40px * var(--row-scale, 1));border-bottom:1px solid var(--line-2);background:var(--panel)}.grid-row.sel{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.grid-row.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.grid-row.drop-inside{background:#dde6fb}.name-cell{display:flex;align-items:center;min-width:0;height:100%}.chev{width:24px;height:24px;border:0;background:transparent;border-radius:6px;display:grid;place-items:center;flex:none;padding:0}.chev:hover{background:#ececea}.chev svg{transition:transform .15s}.chev[aria-expanded=true] svg{transform:rotate(90deg)}.drag-handle{width:14px;height:24px;flex:none;cursor:grab;color:#b9bcc2;display:grid;place-items:center;opacity:0}.grid-row:hover .drag-handle{opacity:1}.ms-mark{width:8px;height:8px;transform:rotate(45deg);background:var(--ink);margin:0 8px 0 2px;flex:none}.cell{border:1px solid transparent;background:transparent;height:min(32px,calc(40px * var(--row-scale, 1) - 6px));padding:0 6px;border-radius:6px;width:100%;min-width:0;color:var(--ink);text-overflow:ellipsis}.cell:hover{border-color:var(--line);background:var(--panel)}.cell:focus{border-color:var(--accent);background:var(--panel);outline:none}.cell.mono{font-family:var(--mono);font-size:12px;color:var(--ink-2)}.cell.num{text-align:right}.cell.bold{font-weight:700}.cell.invalid{border-color:var(--danger)}.cell[readonly]{cursor:default}.cell[readonly]:hover{border-color:transparent;background:transparent}select.cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:4px}input.cell[type=date]::-webkit-calendar-picker-indicator{opacity:0;width:12px;margin-left:2px}input.cell[type=date]:hover::-webkit-calendar-picker-indicator,input.cell[type=date]:focus::-webkit-calendar-picker-indicator{opacity:.6}.role-cell{display:flex;align-items:center;gap:6px;min-width:0}.dot{width:10px;height:10px;border-radius:5px;flex:none}.add-row{height:calc(40px * var(--row-scale, 1));display:flex;align-items:center;padding-left:12px;border-bottom:1px solid var(--line-2)}.chart{position:relative;flex:none;z-index:1}.chart-head{position:sticky;top:0;z-index:10;background:var(--panel);border-bottom:1px solid var(--line-strong);height:var(--head-h, 56px)}.chart-head .row-weeks{position:relative;height:22px;border-bottom:1px solid var(--line-2)}.seg-week{position:absolute;top:0;height:22px;line-height:22px;padding-left:4px;font:500 calc(11px / var(--size, 1)) var(--mono);color:var(--ink-2);border-left:1px solid var(--line-strong);white-space:nowrap;overflow:hidden}.chart-head .row3{position:relative;height:24px;border-top:1px solid var(--line-2)}.seg-wd{position:absolute;top:0;height:24px;line-height:24px;text-align:center;font-size:calc(11px / var(--size, 1));color:var(--ink-2);border-left:1px solid var(--line-3)}.seg-wd.we{color:var(--muted);background:#fafaf7}.chart-head .row1,.chart-head .row2{position:relative;height:28px}.chart-head .row1{border-bottom:1px solid var(--line-2)}.seg-top{position:absolute;top:0;height:28px;line-height:28px;padding-left:10px;border-left:1px solid var(--line-strong);font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden}.seg-bottom{position:absolute;top:0;height:28px;line-height:28px;text-align:center;font:calc(11px / var(--size, 1)) var(--mono);color:var(--muted);border-left:1px solid var(--line-3);white-space:nowrap;overflow:hidden}.chart-body{position:relative}.gridline{position:absolute;top:0;bottom:0;width:1px;background:var(--line-3)}.weekend{position:absolute;top:0;bottom:0;background:#fafaf7}.stripe{position:absolute;left:0;right:0;height:40px;border-bottom:1px solid var(--line-3)}.period{position:absolute;top:0;bottom:0;background:#2450d817;box-shadow:inset 1px 0 #2450d859,inset -1px 0 #2450d859;pointer-events:none}.chart-head .pick{cursor:pointer}.chart-head .pick:hover{background:#2450d80f;color:var(--ink)}.chart-head .pick.on{background:var(--accent);color:#fff}.stripe.sel{background:#2450d80f}.today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--danger);z-index:1;pointer-events:none}.today-line span{position:absolute;top:4px;left:6px;font-size:11px;font-weight:600;color:var(--danger);background:var(--panel);padding:1px 5px;border-radius:4px}.deps{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;z-index:1}.bar{position:absolute;z-index:2;touch-action:none;-webkit-user-select:none;user-select:none}.bar.multi{outline:2px solid var(--accent);outline-offset:2px}.chart-body .marquee{position:absolute;z-index:5;background:#2450d814;border:1px dashed var(--accent);pointer-events:none}.bar.task{height:22px;border-radius:6px;overflow:hidden;cursor:grab}.bar.task .prog{height:100%}.bar.task{position:absolute}.bar-free{position:absolute;top:1.5px;bottom:1.5px;background:repeating-linear-gradient(135deg,#ffffffb8 0,#ffffffb8 3px,#ffffff73 3px,#ffffff73 6px);pointer-events:none}.bar.phase{height:8px;background:var(--ink);border-radius:2px;cursor:grab}.bar.phase:before,.bar.phase:after{content:"";position:absolute;top:0;width:7px;height:14px;background:var(--ink)}.bar.phase:before{left:0;clip-path:polygon(0 0,100% 0,100% 55%,0 100%)}.bar.phase:after{right:0;clip-path:polygon(0 0,100% 0,100% 100%,0 55%)}.bar.milestone{width:18px;height:18px;transform:rotate(45deg);border-radius:3px;cursor:grab}.bar.dragging{cursor:grabbing;opacity:.85}.bar.crit{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--danger)!important}.bar.phase.crit{box-shadow:none!important;outline:2px solid var(--danger);outline-offset:2px}.bar.conflict{outline:2px dashed var(--danger);outline-offset:2px}.grip{position:absolute;width:8px;height:18px;border-radius:3px;background:#fff;border:1.5px solid var(--ink);cursor:ew-resize;z-index:3;touch-action:none}.link-dot{position:absolute;width:12px;height:12px;border-radius:6px;background:var(--accent);box-shadow:0 0 0 3px #fff;cursor:crosshair;z-index:3;touch-action:none}.bar-label{position:absolute;height:40px;line-height:40px;font-size:13px;font-weight:500;white-space:nowrap;color:var(--ink);pointer-events:none;z-index:2}.bar-label.phase{font-weight:700}.drag-tip{position:absolute;z-index:5;background:var(--ink);color:#fff;font:500 calc(11px / var(--size, 1)) var(--mono);padding:3px 6px;border-radius:4px;pointer-events:none;white-space:nowrap}.empty{position:absolute;left:32px;top:80px;z-index:3;max-width:420px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;box-shadow:0 8px 24px #0000000f}.empty h2{margin:0 0 6px;font-size:20px}.empty p{margin:0 0 16px;color:var(--muted)}.drawer{flex:1 1 300px;max-width:380px;min-width:280px;height:100%;background:var(--panel);border-left:1px solid var(--line-strong);padding:20px;overflow:auto;display:flex;flex-direction:column;gap:16px}.drawer .kicker{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.drawer .name{font-size:20px;font-weight:700;line-height:1.25;border:1px solid transparent;border-radius:6px;padding:2px 4px;margin:2px -5px 0;width:calc(100% + 10px);background:transparent}.drawer .name:hover{border-color:var(--line)}.drawer .name:focus{border-color:var(--field);outline:none}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dep-row{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 12px;background:var(--ground);border-radius:8px;font-size:13px}.dep-row span{flex:1;min-width:0}.dep-row select,.dep-row input{height:30px;border:1px solid var(--field);border-radius:6px;background:#fff;font-size:12px;padding:0 4px}.dep-row input{width:52px}.hint{font-size:13px;color:var(--muted)}.drawer.conflicts .conflict{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:10px}.drawer.conflicts .conflict-name{align-self:flex-start;padding:0;text-align:left;font-weight:600;color:var(--ink)}.drawer.conflicts ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:13px}.drawer.conflicts li{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.drawer.conflicts .link-btn.danger{color:var(--danger);font-size:12px;padding:2px 0}.drawer.conflicts .conflict>.btn{align-self:flex-start}.drawer.conflicts .conflict-all{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding-top:4px;border-top:1px solid var(--line)}.danger-btn{width:40px;height:40px;border:1px solid #e4c7c3;background:var(--panel);border-radius:8px;display:grid;place-items:center}.danger-btn:hover{background:#fdf3f2}.pop-wrap{position:relative}.popover{position:absolute;top:calc(100% + 6px);left:0;z-index:20;width:360px;max-width:calc(100vw - 32px);background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #00000024;padding:14px;display:flex;flex-direction:column;gap:10px}.popover h3{margin:0;font-size:14px}.role-line{display:grid;grid-template-columns:22px 30px minmax(0,1fr) minmax(0,.9fr) 30px;gap:6px;align-items:center}.role-line input[type=color]{width:30px;height:30px;border:1px solid var(--field);border-radius:6px;padding:2px;background:#fff}.role-line .input{height:32px;font-size:13px;padding:0 8px}.roadmap{flex:1;overflow:auto;padding:28px 20px 40px}.roadmap-inner{max-width:1440px;margin:0 auto}.roadmap h1{margin:6px 0 0;font-size:32px;line-height:1.15;letter-spacing:-.02em}.kicker{font-size:13px;color:var(--muted);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.rm-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow-x:auto}.rm-grid{display:grid;grid-template-columns:240px minmax(0,1fr)}.rm-head{border-bottom:1px solid var(--line-strong)}.rm-axis{position:relative;height:56px;border-left:1px solid var(--line-2)}.rm-q{position:absolute;top:0;height:28px;line-height:28px;padding-left:8px;border-left:1px solid var(--line-strong);font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden}.rm-m{position:absolute;top:28px;height:28px;line-height:28px;padding-left:8px;border-left:1px solid var(--line-2);font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden}.rm-lane{border-bottom:1px solid var(--line-2)}.rm-label{padding:14px 12px 14px 16px;display:flex;align-items:flex-start;gap:8px;min-width:0}.rm-label .t{font-weight:700;font-size:15px;line-height:28px}.rm-label .m{font-size:12px;color:var(--muted)}.rm-track{position:relative;border-left:1px solid var(--line-2)}.rm-bar{position:absolute;height:28px;border:0;border-radius:8px;color:#fff;font-weight:600;font-size:13px;display:flex;align-items:center;overflow:hidden;padding:0;text-align:left;z-index:1}.rm-bar .rest{position:absolute;top:0;bottom:0;background:#ffffff47}.rm-bar .txt{position:relative;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rm-bar.sel{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--accent)}.rm-ms{position:absolute;display:flex;align-items:center;gap:6px;z-index:1;background:#ffffffe6;padding-right:6px;border-radius:4px;border:0}.rm-ms .d{width:14px;height:14px;transform:rotate(45deg);border-radius:2px;flex:none}.rm-ms .n{font-size:12px;font-weight:600;white-space:nowrap}.rm-ms .dt{font:12px var(--mono);color:var(--muted);white-space:nowrap}.legend{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-size:13px;color:var(--ink-2)}.legend>span{display:inline-flex;align-items:center;gap:6px}.home{min-height:100%}.home main{max-width:1180px;margin:0 auto;padding:40px 20px 64px;display:flex;flex-direction:column;gap:40px}.home h1{margin:0;font-size:34px;letter-spacing:-.02em;line-height:1.1}.home h2{margin:0;font-size:22px}.lead{margin:8px 0 0;color:var(--muted);font-size:15px}.templates{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.tpl{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:14px;text-align:left;color:var(--ink)}.tpl:hover{border-color:var(--field);box-shadow:0 4px 14px #0000000f}.tpl.blank{border:1.5px dashed #b9bcc2}.tpl .pic{height:110px;border-radius:10px;background:var(--ground);position:relative;overflow:hidden;display:grid;place-items:center}.tpl .pic i{position:absolute;display:block;border-radius:4px}.tpl .t{font-weight:700;font-size:16px}.tpl .s{color:var(--muted);font-size:13px;margin-top:2px}.plist{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow-x:auto}.plist-row{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1.6fr) 110px 150px 96px;gap:16px;padding:14px 20px;align-items:center;border-bottom:1px solid var(--line-2);min-width:760px}.plist-row:last-child{border-bottom:0}.plist-row.head{padding:12px 20px;font-size:12px;font-weight:600;color:var(--muted)}.plist-row a{color:var(--ink);text-decoration:none}.plist-row a:hover .pn{text-decoration:underline}.pn{font-weight:700}.pm{font-size:13px;color:var(--muted)}.spark{position:relative;height:24px;background:var(--ground);border-radius:6px;overflow:hidden}.spark i{position:absolute;top:7px;height:10px;border-radius:3px;background:var(--ink)}.search{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;background:var(--panel);border:1px solid var(--field);border-radius:9px;flex:0 1 280px}.search input{border:0;outline:none;flex:1;min-width:0;background:transparent}.drop{display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding:24px;border:1.5px dashed #b9bcc2;border-radius:14px;background:var(--panel-2)}.drop.over{border-color:var(--accent);background:var(--accent-soft)}.empty-list{padding:28px 20px;color:var(--muted)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#17191c8c;display:flex;align-items:center;justify-content:center;padding:24px}.dialog{width:100%;max-width:980px;max-height:calc(100vh - 48px);background:var(--panel);border-radius:18px;box-shadow:0 24px 64px #00000047;overflow:hidden;display:flex;flex-direction:column}.dialog-head{display:flex;align-items:center;gap:12px;padding:20px 24px;border-bottom:1px solid var(--line-2)}.dialog-head h2{margin:0;font-size:22px;flex:1}.dialog-body{display:flex;flex-wrap:wrap;overflow:auto}.dialog-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--line-2)}.opts{flex:1 1 380px;padding:24px;display:flex;flex-direction:column;gap:22px}.preview{flex:1 1 380px;padding:24px;background:var(--ground);display:flex;flex-direction:column;gap:12px;border-left:1px solid var(--line-2);min-width:0}fieldset{border:0;margin:0;padding:0}legend{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:0;margin-bottom:10px}.fmt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.fmt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;min-height:64px;border-radius:10px;text-align:left;background:var(--panel);border:1px solid var(--field);margin:1px}.fmt[aria-pressed=true]{background:var(--accent-soft);border:2px solid var(--accent);margin:0}.fmt b{font-size:15px}.fmt small{font-size:12px;color:var(--muted)}.checks{display:flex;flex-direction:column;gap:10px}.checks label{display:flex;align-items:center;gap:10px;cursor:pointer}.checks input{width:18px;height:18px;accent-color:var(--accent)}.notes{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:var(--ground);border-radius:10px;color:var(--ink-2)}.notes b{color:var(--ink)}.preview-frame{background:#fff;border-radius:10px;box-shadow:0 1px 3px #0000001a;overflow:hidden;position:relative}.capture-host{position:fixed;left:-100000px;top:0;pointer-events:none}.sheet{background:#fff;padding:32px;display:inline-block;font-family:var(--font);color:var(--ink)}.sheet h1{margin:0;font-size:26px;letter-spacing:-.01em}.sheet .sub{color:var(--muted);margin:4px 0 20px;font-size:13px}.sheet .frame{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.sheet .legend{margin-top:14px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:60;background:var(--ink);color:#fff;padding:12px 16px;border-radius:10px;display:flex;gap:12px;align-items:center;box-shadow:0 8px 24px #00000040;max-width:calc(100vw - 32px)}.toast button{border:0;background:transparent;color:#c9d6fb;font-weight:600}@media (max-width: 720px){.topbar,.toolbar{padding:8px 12px}.footer{display:none}.drawer{max-width:none;flex-basis:100%;height:auto;border-left:0;border-top:1px solid var(--line-strong)}.home main{padding:24px 16px 48px}.rm-grid{grid-template-columns:150px minmax(0,1fr)}}.process{flex:1;display:flex;flex-direction:column;min-height:0}.process .workspace{flex:1}.process-empty{flex:1;display:grid;place-items:center;padding:40px;color:var(--muted)}.dtabs{display:flex;align-items:flex-end;gap:4px;padding:8px 20px 0;background:var(--panel-2);border-bottom:1px solid var(--line);overflow-x:auto}.dtab{padding:9px 14px;border:1px solid transparent;background:transparent;color:var(--ink-2);white-space:nowrap;border-radius:9px 9px 0 0;margin-bottom:-1px}.dtab:hover{color:var(--ink)}.dtab[aria-selected=true]{background:var(--panel);border-color:var(--line);border-bottom-color:var(--panel);font-weight:600;color:var(--ink)}.dtab-edit{display:inline-grid;cursor:text}.dtab-edit:after,.dtab-edit input{grid-area:1 / 1;font:inherit;letter-spacing:inherit;padding:0;margin:0;border:0}.dtab-edit:after{content:attr(data-value) " ";visibility:hidden;white-space:pre}.dtab-edit input{width:100%;min-width:1ch;background:transparent;color:inherit;outline:none}.menu{position:absolute;top:100%;left:0;z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px #00000024;padding:6px;display:flex;flex-direction:column;min-width:150px}.menu button{border:0;background:transparent;text-align:left;padding:8px 10px;border-radius:6px}.menu button:hover{background:var(--ground)}.menu .danger{color:var(--danger)}.dscroll{flex:999 1 560px;min-width:0;height:100%;overflow:auto;position:relative;background-color:var(--ground);background-image:radial-gradient(#d6d6d0 1px,transparent 1px);background-size:20px 20px}.dcanvas.live{-webkit-user-select:none;user-select:none;touch-action:none}.dnode .dport{fill:var(--accent);stroke:#fff;stroke-width:3;opacity:0;cursor:crosshair;transition:opacity .1s}.dcanvas.live .dnode:hover .dport,.dnode.sel .dport{opacity:1}.dnode.link-target .dport{opacity:1;fill:#fff;stroke:var(--accent);stroke-width:2}.dnode.link-target .dport.on{fill:var(--accent);stroke:#fff;stroke-width:3;r:8}.dresize{fill:#fff;stroke:var(--accent);stroke-width:2;cursor:nwse-resize}.lane-resize{cursor:ns-resize}.lane-resize:hover{fill:#2450d826}.dnode-text{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font:600 14px/1.25 var(--font);overflow:hidden;word-break:break-word;white-space:pre-wrap}.dnode-text.note{justify-content:flex-start;text-align:left;font-weight:400;font-style:italic;font-size:13px}.dnode-edit{width:100%;height:100%;border:0;outline:2px solid var(--accent);border-radius:4px;background:#ffffff26;resize:none;font:600 14px/1.25 var(--font);padding:4px}.dhint{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px;color:var(--ink-2);box-shadow:0 6px 18px #0000000f;pointer-events:none}.swatch{width:30px;height:30px;border-radius:8px;border:1px solid var(--field);font-size:11px;font-weight:700;color:var(--muted);padding:0}.swatch[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:2px}.tips{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--ground);border-radius:10px;font-size:13px;color:var(--ink-2)}.tips strong{color:var(--ink)}.dpreview svg{max-width:100%;height:auto}.linked-diagrams{display:flex;flex-direction:column;gap:4px}.menu-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:29}.menu[role=menu]{z-index:30}.box-btn{height:28px;padding:0 10px;border:1px dashed var(--field);background:transparent;border-radius:6px;color:var(--accent);font-size:12px;font-weight:600}.box-btn:hover{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.grid-row.unsched .name-cell input{font-style:italic}.field input[type=date]{padding:0 6px;font-size:12px;letter-spacing:-.01em}.field input[type=date]::-webkit-calendar-picker-indicator{margin-left:2px;padding:0}.datefield{position:relative;display:flex;align-items:center;min-width:0}.datefield>input:first-child{flex:1;min-width:0;padding-right:24px}.field .datefield>input:first-child{height:38px;border:1px solid var(--field);border-radius:var(--radius);padding:0 26px 0 10px;background:var(--panel);color:var(--ink);font:500 13px var(--mono)}.field .datefield>input:first-child:disabled{background:#f6f6f3;color:var(--muted)}.datefield-btn{position:absolute;right:3px;width:22px;height:22px;border:0;background:transparent;border-radius:5px;color:var(--muted);display:grid;place-items:center;padding:0;opacity:0}.datefield:hover .datefield-btn,.datefield:focus-within .datefield-btn,.field .datefield-btn{opacity:1}.datefield-btn:hover{background:var(--ground);color:var(--ink)}.datefield-picker{position:absolute;right:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}.grid-row{position:relative}.row-insert{position:absolute;left:4px;right:0;bottom:-1px;height:0;z-index:5;pointer-events:none}.row-insert:before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--accent);opacity:0;transition:opacity .1s}.row-add{position:absolute;left:0;top:-11px;width:22px;height:22px;border:1px solid var(--field);border-radius:11px;background:var(--panel);color:var(--accent);display:grid;place-items:center;padding:0;opacity:0;pointer-events:auto;box-shadow:0 1px 3px #0000001f}.grid-row:hover .row-add{opacity:1}.row-add:hover{background:var(--accent);border-color:var(--accent);color:#fff}.row-insert:has(.row-add:hover):before{opacity:1}.col-pick{position:relative;display:inline-block;margin-right:6px;white-space:nowrap;cursor:pointer}.col-pick:hover{color:var(--ink)}.col-select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;cursor:pointer;font:600 12px var(--font)}.cell.workdays{color:var(--accent-ink)}.grid.picking .grid-row,.grid.picking .grid-row input{cursor:copy}.grid.picking .grid-row:hover{background:#eef3ff}.grid.picking .pred-cell:focus{box-shadow:0 0 0 3px #2450d82e}.pick-hint{position:fixed;left:50%;bottom:56px;transform:translate(-50%);z-index:40;background:var(--accent);color:#fff;padding:8px 14px;border-radius:8px;font-size:13px;box-shadow:0 6px 18px #0000002e;pointer-events:none;white-space:nowrap}.dep-hit{cursor:pointer}.dep-pop{position:absolute;z-index:8;width:260px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px #00000029;padding:10px 12px;display:flex;flex-direction:column;gap:8px;font-size:13px}.dep-pop-text{color:var(--ink-2);line-height:1.35}.dep-pop-text b{color:var(--ink);font-weight:600}.login{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--ground)}.login-card{width:100%;max-width:440px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:32px 28px;display:flex;flex-direction:column;gap:12px}.login-card h1{margin:6px 0 0;font-size:22px;letter-spacing:-.01em}.login-card p{margin:0;color:var(--ink-2);line-height:1.5}.login-card .login-hint{color:var(--muted);font-size:13px;border-top:1px solid var(--line);padding-top:12px;margin-top:4px}.login-card code{font-family:var(--mono);font-size:12px;background:var(--seg);padding:1px 5px;border-radius:4px}.login-error{color:var(--danger)!important;background:#fdf0ee;border:1px solid #f4cdc8;border-radius:var(--radius);padding:10px 12px}.avatar{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:700;letter-spacing:.02em;flex:none;line-height:1}.user-menu{position:relative}.avatar-btn{border:0;padding:2px;background:transparent;border-radius:50%;display:grid}.avatar-btn:hover .avatar,.avatar-btn[aria-expanded=true] .avatar{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--field)}.user-menu-pop{left:auto;right:0;top:calc(100% + 6px);min-width:240px}.user-menu-pop .who{display:flex;gap:10px;align-items:center;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}.user-menu-pop .n{font-weight:600}.user-menu-pop .e{color:var(--muted);font-size:13px}.user-menu-pop .tag{display:inline-block;margin-top:4px;font-size:11px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);border-radius:4px;padding:1px 6px}.login-card code.cmd{display:block;margin-top:6px;padding:6px 8px;overflow-wrap:anywhere}.menu .menu-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 10px 4px}.menu a[role=menuitem]{display:flex;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:6px;color:var(--ink);text-decoration:none}.menu a[role=menuitem]:hover{background:var(--ground)}.menu a[role=menuitem] .role{color:var(--muted);font-size:12px}.menu .sep{height:1px;background:var(--line);margin:4px 0}.move-menu{position:fixed;left:auto;min-width:200px}.team-pick{display:inline-flex;align-items:center;gap:8px;margin-top:12px;color:var(--muted);font-size:14px}.team-pick select{height:34px;min-width:180px}.team-block{display:flex;flex-direction:column;gap:8px}.team-block+.team-block{margin-top:12px}.team-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}.team-head h3{margin:0;font-size:16px}.team-head .meta{color:var(--muted);font-size:13px}.team-head a{margin-left:auto;font-size:13px;font-weight:600}.team-page{max-width:820px!important}.team-page h1{margin:0}.team-name{font:700 34px/1.1 var(--font);letter-spacing:-.02em;color:var(--ink);border:1px solid transparent;border-radius:8px;background:transparent;padding:2px 6px;margin-left:-7px;width:100%;max-width:640px}.team-name:hover{border-color:var(--line)}.team-name:focus{border-color:var(--field);background:var(--panel);outline:none}.members{display:flex;flex-direction:column;gap:12px}.member-row{display:grid;grid-template-columns:auto minmax(0,1fr) 130px 100px;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line-2)}.member-row:last-child{border-bottom:0}.member-row .who,.hit .who{min-width:0}.member-row .n,.hit .n{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-row .e,.hit .e{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-row .you{color:var(--muted);font-weight:400}.member-row .role{color:var(--ink-2)}.member-row select{height:34px}.member-row .act{display:flex;justify-content:flex-end}.add-member{position:relative}.add-member .search{flex:none;width:100%}.add-member .hits{margin-top:6px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:4px}.add-member .hit{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border-radius:6px}.add-member .hit:hover{background:var(--ground)}.add-member .none{padding:10px;color:var(--muted)}.add-member .already{color:var(--muted);font-size:13px}.note{color:var(--muted);font-size:13px;margin:0}.danger-zone{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.btn.danger{color:var(--danger);border-color:#f0c7c2}.btn.danger:hover:not(:disabled){background:#fdf0ee}@media (max-width: 560px){.member-row{grid-template-columns:auto minmax(0,1fr)}.member-row select,.member-row .role{grid-column:2}.member-row .act{grid-column:2;justify-content:flex-start}}.admin-page{max-width:1180px}.admin-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.admin-section{display:flex;flex-direction:column;gap:14px;margin-top:-16px}.admin-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.admin-row{display:grid;grid-template-columns:auto minmax(0,1.6fr) minmax(0,1.2fr) 150px 130px auto;gap:14px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line-2);min-width:900px}.admin-row.head{padding:12px 20px;font-size:12px;font-weight:600;color:var(--muted)}.admin-user:last-child .admin-row,.admin-user:last-child .admin-edit{border-bottom:0}.admin-row .who,.admin-row .teams,.admin-row .seen{min-width:0}.admin-row .n{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-row .you{color:var(--muted);font-weight:400}.admin-row .e,.admin-team .e{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-row .teams{color:var(--ink-2);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-row .seen{font-size:13px;color:var(--ink-2)}.admin-row .status{display:flex;flex-wrap:wrap;gap:4px}.admin-row .act{display:flex;gap:6px;justify-content:flex-end}.admin-user.inactive .admin-row>:not(.act):not(.status){opacity:.5}.badge{display:inline-block;font-size:11px;font-weight:600;border-radius:4px;padding:2px 7px}.badge.ok{color:var(--ok);background:#ecf4ec}.badge.off{color:var(--muted);background:var(--seg)}.badge.admin{color:var(--accent-ink);background:var(--accent-soft)}.admin-edit{display:flex;flex-wrap:wrap;gap:24px;padding:16px 20px 20px 66px;background:var(--ground);border-bottom:1px solid var(--line-2)}.admin-edit-side{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-left:24px;border-left:1px solid var(--line)}.user-edit,.new-user{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.user-edit .field,.new-user .field{flex:1 1 200px}.new-user{padding:16px 20px;background:var(--panel);border:1px solid var(--line);border-radius:14px}.user-edit-actions{display:flex;gap:8px}.check{display:inline-flex;align-items:center;gap:8px;height:38px;font-size:14px;color:var(--ink)}.check input{width:16px;height:16px;accent-color:var(--accent)}.swatches{display:flex;gap:6px;height:38px;align-items:center}.swatches button{width:24px;height:24px;border-radius:50%;border:0;padding:0}.swatches button[aria-checked=true]{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--ink)}.admin-team{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1.4fr) 100px 100px auto;gap:14px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line-2);min-width:680px}.admin-team:last-child{border-bottom:0}.admin-team.head{font-size:12px;font-weight:600;color:var(--muted)}.admin-team .n{font-weight:600;color:var(--ink);text-decoration:none}.admin-team .n:hover{text-decoration:underline}.admin-team a.btn{text-decoration:none;color:var(--ink)}.link-dialog{max-width:620px}.link-body{padding:20px 24px;display:flex;flex-direction:column;gap:12px}.link-body p{margin:0;line-height:1.5}.link-row{display:flex;gap:8px}.link-row .input{flex:1;font:500 12px var(--mono)}.admin-edit>.user-edit{flex:1 1 520px}.admin-edit>.admin-edit-side{flex:0 0 auto}@media (max-width: 760px){.admin-edit{padding-left:20px}.admin-edit-side{padding-left:0;border-left:0}}.live-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#8a4b08;background:#fdf3e6;border:1px solid #f1d6b3;border-radius:999px;padding:2px 10px}.presence{display:flex;align-items:center;padding-left:4px;margin-right:-8px}.presence-avatar{display:grid;margin-left:-6px;border-radius:50%;box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--peer)}.presence-avatar:first-child{margin-left:0}.presence-avatar+.presence-avatar{margin-left:2px}.presence-more{margin-left:6px;font-size:12px;font-weight:600;color:var(--muted)}.peer-tags{display:inline-flex;gap:3px;pointer-events:none}.peer-tag{display:inline-block;color:#fff;font-size:11px;font-weight:600;line-height:16px;padding:0 6px;border-radius:8px;white-space:nowrap;box-shadow:0 1px 2px #00000026}.grid-row.peer-sel{box-shadow:inset 3px 0 0 var(--peer)}.grid-row .name-cell>.peer-tags{order:99;flex:none;margin:0 4px}.peer-mark{position:absolute;border:2px solid;border-radius:9px;pointer-events:none;z-index:3}.peer-mark>.peer-tags{position:absolute;left:-2px;bottom:calc(100% + 2px)}.rm-bar.peer-sel{outline:2px solid var(--peer);outline-offset:2px}.rm-bar>.peer-tags{position:absolute;right:4px;top:50%;transform:translateY(-50%)}.peer-cursor{position:absolute;left:0;top:0;z-index:6;pointer-events:none;transition:transform 80ms linear;display:flex;align-items:flex-start}.peer-cursor>span{margin:12px 0 0 -4px;background:var(--peer);color:#fff;font-size:11px;font-weight:600;line-height:18px;padding:0 7px;border-radius:9px;white-space:nowrap}.svg-peer-cursor{transition:transform 80ms linear}.plist-row .here{display:inline-flex;margin-left:8px;vertical-align:middle}.plist-row .here .avatar{box-shadow:0 0 0 2px var(--panel);margin-left:-4px}.plist-row .here .avatar:first-child{margin-left:0}@media (prefers-reduced-motion: reduce){.peer-cursor,.svg-peer-cursor{transition:none}}button.presence-avatar{border:0;padding:0;background:transparent;cursor:pointer}.presence-avatar:hover{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--peer),0 2px 8px #0003}.presence-avatar.following{box-shadow:0 0 0 2px var(--panel),0 0 0 5px var(--peer)}.app.following{position:relative}.app.following:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:3px solid var(--peer);pointer-events:none;z-index:40}.follow-banner{position:absolute;bottom:0;left:50%;transform:translate(-50%);z-index:41;display:flex;align-items:center;gap:12px;background:var(--peer);color:#fff;font-size:13px;padding:6px 6px 4px 14px;border-radius:10px 10px 0 0;box-shadow:0 -4px 14px #0000002e}.follow-banner .btn{height:26px;padding:0 8px;font-size:12px;color:var(--ink);border-color:transparent}.follow-banner kbd{font:500 10px var(--mono);border:1px solid var(--line-strong);border-radius:4px;padding:0 4px;color:var(--muted)}.grid.alone,.roadmap-inner{position:relative}.audit-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.audit-filters .field{flex:0 1 170px}.audit-filters select{height:38px;border:1px solid var(--field);border-radius:var(--radius);background:var(--panel);padding:0 8px}.audit-row{display:grid;grid-template-columns:170px 140px 190px minmax(0,1fr) minmax(0,1.4fr);gap:12px;padding:9px 20px;border-bottom:1px solid var(--line-2);align-items:baseline;min-width:900px;font-size:13px}.audit-row:last-child{border-bottom:0}.audit-row.head{font-size:12px;font-weight:600;color:var(--muted)}.audit-row .t{color:var(--ink-2);font-size:12px}.audit-row .sys{color:var(--muted)}.audit-row .act.warn{color:var(--danger)}.audit-row .tgt,.audit-row .det{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-row .det{color:var(--ink-2)}.login-form{display:flex;flex-direction:column;gap:12px}.login-form .btn.primary{height:42px;justify-content:center}.login-note{color:var(--muted)!important;font-size:13px}.login-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.code-input{font:600 22px var(--mono)!important;letter-spacing:.3em;height:48px!important;text-align:center}.restore-dialog{max-width:860px}.restore-body{display:flex;flex-direction:column;gap:14px;padding:20px 24px;overflow:auto}.diff-summary{display:flex;flex-wrap:wrap;gap:8px}.badge.new{color:var(--ok);background:#ecf4ec}.badge.mod{color:#8a4b08;background:#fdf3e6}.badge.del{color:var(--danger);background:#fdf0ee}.diff-key{font:600 13px var(--mono);padding:0 4px;border-radius:3px}.diff-key.add,.diff-line.add .op{color:var(--ok)}.diff-key.del,.diff-line.del .op{color:var(--danger)}.diff-key.mod,.diff-line.mod .op{color:#8a4b08}.diff-projects{overflow:visible}.diff-proj{border-bottom:1px solid var(--line-2)}.diff-proj:last-child{border-bottom:0}.diff-proj-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 16px}.diff-proj-row input{width:16px;height:16px;accent-color:var(--accent)}.diff-proj-row .n{font-weight:600}.diff-proj-row .e{color:var(--muted);font-size:13px}.diff-proj-row .e.warn,.warn{color:var(--danger)}.diff-lines{margin:0 16px 12px 46px;padding:8px 12px;background:var(--panel-2);border:1px solid var(--line-2);border-radius:8px;max-height:280px;overflow:auto}.diff-line{white-space:pre-wrap;line-height:1.6}.diff-line.add{background:#f3f8f3}.diff-line.del{background:#fdf5f4}.diff-line .op{display:inline-block;width:16px;font-weight:700}.diff-line .k,.diff-line .f,.diff-line.more{color:var(--muted)}.link-btn{align-self:flex-start}.settings{display:flex;flex-direction:column;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px}.settings-group{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.settings-group legend{font-weight:600;font-size:15px;margin-bottom:4px}.settings-row{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}.settings-row .field{width:210px}.settings-row .field.grow{flex:1 1 260px;width:auto}.note.warn{color:var(--danger)}.invite-form{display:flex;flex-direction:column;gap:12px}.invite-form .user-edit-actions{align-items:center}.login-ok{margin:0;padding:10px 12px;border-radius:8px;background:#ecf4ec;color:var(--ok)}.invite-list{margin-top:18px;border-top:1px solid var(--line-2);padding-top:8px}.invite-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-3)}.invite-row:last-child{border-bottom:0}.invite-row .who{flex:1;min-width:0}.invite-row .n{font-weight:600}.invite-row .e{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis}.home main.privacy{max-width:820px;margin:0 auto;padding:32px 24px 64px;display:flex;flex-direction:column;gap:24px}.privacy h1{margin:0 0 4px;font-size:30px}.privacy h2{margin:0 0 8px;font-size:19px}.privacy h3{margin:0 0 6px;font-size:15px}.privacy p{margin:0 0 8px;line-height:1.55}.privacy .lead{font-size:16px;color:var(--ink-2)}.privacy-table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}.privacy-table th,.privacy-table td{text-align:left;vertical-align:top;padding:10px 14px;border-bottom:1px solid var(--line-2)}.privacy-table th{font-size:12px;color:var(--muted);font-weight:600}.privacy-table tr:last-child td{border-bottom:0}.privacy-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:8px}.privacy-actions>*{display:flex;flex-direction:column;gap:10px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px}.privacy-actions .field{align-self:stretch}.privacy-actions a.btn{text-decoration:none;color:var(--ink)}.login-foot{margin:16px 0 0;font-size:13px;text-align:center}.login-foot a{color:var(--muted)}.admin-head .seg{max-width:100%;overflow-x:auto}.admin-head .seg a{flex:none}@media (max-width: 600px){.diff-proj-row{grid-template-columns:18px minmax(0,1fr)}.diff-proj-row>.badge,.diff-proj-row>.btn{grid-column:2;justify-self:start}.diff-lines{margin-left:16px}.restore-body{padding:16px}}.kscroll{flex:999 1 560px;min-width:0;height:100%;overflow:auto;padding:16px 20px 24px;background:var(--ground)}.kboard{--kband: #ececE7;--kdiv: rgba(23, 25, 28, .12);display:grid;column-gap:14px;row-gap:0;align-items:stretch;min-width:min-content}.khead{display:flex;align-items:center;gap:8px;height:48px;padding:0 10px 0 6px;background:var(--kband);border-radius:12px 12px 0 0;border-bottom:1px solid var(--kdiv)}.khead.sel{box-shadow:inset 0 0 0 2px var(--accent)}.khead-name{border:0;background:transparent;font:inherit;font-weight:700;font-size:14px;color:var(--ink);padding:6px 8px;border-radius:6px;text-align:left;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.khead-name:hover{background:#fff9}.kcount{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:10px;background:#ffffffbf;color:var(--ink-2);font-size:11px}.kcount.over{background:var(--danger);color:#fff;font-weight:600}.kdone-flag{margin-left:auto;color:var(--ok);font-weight:700;font-size:13px}.klane{padding:14px 8px 14px 0;display:flex;flex-direction:column;gap:4px;min-width:0}.klane.div{border-top:1px solid var(--line-strong)}.klane-name{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;font:inherit;font-weight:600;font-size:13px;color:var(--ink);padding:4px 6px;margin-left:-6px;border-radius:6px;text-align:left}button.klane-name:hover{background:var(--seg)}.klane.sel .klane-name{box-shadow:inset 0 0 0 2px var(--accent)}.kswatch{width:10px;height:10px;border-radius:3px;flex:none}.klane-person{font-size:12px;color:var(--muted)}.kcell{background:var(--kband);padding:12px 10px;display:flex;flex-direction:column;gap:10px;min-height:120px}.kcell.div{border-top:1px solid var(--kdiv)}.kcell.last{border-radius:0 0 12px 12px;padding-bottom:14px}.kcell.target{background:#e4e6e9}.kcard{position:relative;box-sizing:border-box;height:164px;flex:none;display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:var(--panel);border:1px solid rgba(23,25,28,.1);border-radius:8px;box-shadow:0 1px 2px #17191c0f;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.kcard:hover{border-color:#17191c38}.kcard.sel{border:2px solid var(--accent);padding:9px 11px;box-shadow:0 4px 14px #2450d833}.kcard.rel{border:2px dashed #6f8fe8;padding:9px 11px}.kcard.dim{opacity:.35}.kcard.ghosted{opacity:.4}.kcard-top{display:flex;align-items:center;gap:6px;height:20px}.kcode{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 6px;border-radius:5px;background:var(--accent-soft);color:var(--accent-ink);font:500 calc(11px / var(--size, 1)) var(--mono)}.kfree{font-size:11px;color:var(--muted)}.krel{font-size:11px;font-weight:700;color:var(--accent-ink)}.kdot{width:8px;height:8px;border-radius:4px;flex:none}.ktitle{font-weight:600;font-size:14px;line-height:18px;height:36px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.kprog{display:flex;align-items:center;gap:8px;height:14px}.kprog .mono{font-size:11px;color:var(--ink-2);width:36px;text-align:right}.kbar{flex:1;height:6px;border-radius:3px;background:var(--line-2);overflow:hidden}.kbar>div{height:6px}.kdates{height:16px;line-height:16px;font-size:11px;color:var(--muted)}.late{color:#a11d14!important}.knolink{height:38px;display:flex;align-items:center;font-size:12px;color:var(--muted)}.kbadges{margin-top:auto;display:flex;flex-wrap:nowrap;gap:4px;height:22px;overflow:hidden}.kbadge{display:inline-flex;align-items:center;height:22px;padding:0 7px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap;flex:none}.kbadge.blocked{background:#fdf1e3;color:#8a4b08}.kbadge.late{background:#fdecea;color:#a11d14}.kbadge.done{background:#e8f1e8;color:#2d5530}.kbadge.drift{background:var(--panel);color:var(--muted);border:1px dashed var(--field);font-weight:500}.kbadge.next{background:var(--seg);color:var(--ink-2);font-weight:500}.kpeer{position:absolute;right:8px;z-index:2;padding:1px 8px;border-radius:10px;background:var(--peer);color:#fff;font-size:11px;font-weight:600;pointer-events:none}.kpeer-ring{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:2.5px solid var(--peer);border-radius:11px;pointer-events:none}.kdrop{height:4px;margin:-7px 0;border-radius:2px;background:var(--accent);flex:none}.kadd{height:30px;border:1px dashed var(--field);background:#ffffff80;border-radius:8px;color:var(--muted);font-size:13px;flex:none}.kadd:hover{background:var(--panel);color:var(--ink)}.kghost{position:fixed;z-index:40;max-width:240px;padding:8px 12px;background:var(--panel);border:2px solid var(--accent);border-radius:8px;box-shadow:0 10px 28px #0000002e;font-weight:600;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kghost-n{margin-left:8px;padding:0 6px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px}.kstatus{border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:12px;background:var(--panel-2)}.kstat{display:flex;flex-direction:column;gap:2px}.kstat span{font-size:12px;color:var(--muted)}.kstat b{font-weight:500}.kdeps{display:flex;flex-direction:column;gap:6px}.kdeps-h{font-size:12px;color:var(--muted);font-weight:600}.kdep{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:var(--panel);border:1px solid var(--line-2);font-size:13px}.kdep .mono{font-size:11px;color:var(--muted)}.kdep.holds{background:#fdf1e3;border-color:transparent;color:#5c3205}.kdep.holds .mono,.kdep.holds .kdep-st{color:#8a4b08}.kdep.ok{background:#e8f1e8;border-color:transparent;color:#1f3d21}.kdep.ok .mono,.kdep.ok .kdep-st{color:#2d5530;font-weight:600}.kdep-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kdep-st{font-size:12px;color:var(--muted);white-space:nowrap}.kgen-cols{display:flex;flex-direction:column;gap:6px}.kgen-cols div{display:flex;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink)}.kgen-cols b{flex:1;font-weight:600}.kgen-cols .mono{color:var(--muted)}.sheet .kboard{min-width:0}.kprio{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:5px;font-size:11px;font-weight:700}.kprio.high{background:#fdecea;color:#a11d14}.kprio.medium{background:#fdf1e3;color:#8a4b08}.kprio.low{background:var(--seg);color:var(--ink-2);font-weight:600}.kfree-dates{height:38px;line-height:38px}.kbadge.milestone{background:var(--accent-soft);color:var(--accent-ink);font-weight:500}.kbadge.milestone-late{background:#fdecea;color:#a11d14;font-weight:500}.kms{display:flex;flex-direction:column;gap:6px}.kms-row{display:grid;grid-template-columns:minmax(0,1fr) 132px 32px;gap:6px;align-items:center}.kms-row>input{height:38px;border:1px solid var(--field);border-radius:var(--radius);padding:0 10px;background:var(--panel);color:var(--ink);font-size:14px;min-width:0}.kms-row .icon-btn{width:32px;height:32px}
