@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAAWEABAAAAAACnwAAAUtAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGx4cLgZgAFQIUAmCcxEQCoNgg18LDgABNgIkAxgEIAWDXgdGDINsG1MJQB6FTZl7lLXccknfu1wyTATU3L97eflQ5pSZFDAaQ2lZGABwoEh28vM61/uRmqMp3E9NUQkmEvCWM7XNclvAh+1kutF0mLT/I/pDTx2q/sjCXMDGBokHg7TG5j00ngglgHOe50pjWa/ntXqNCoB94CaYSdTl3t0pAEWZmaF+A6qbQYYCZEDP9PEhi6OXDSzMgOl/ok4FE8D+eBw1haNoEO2PJgFDqT87zJAT2oOoGE3SBAlEDkAOiAAwuE8Nhg2Sq/G0/z+Ip0UVExQQAFFMLAEJAoiAHFAeCQHlUTigOBkCBZSA3UuuZuC/FbJ/vpv/eRTkev1KivTjpCmTY0qVAJtTklQqVq/VMFA860QVKkhCG3k2jCrMk0QUqKKlGX6CFvDmU6ag2VCRfNSkFyGcmZyGbFequMYiOXLmDL8INUtwCV8shFnNRUSzFGpS2y8imyWlQq7+gMZ2awc+kewfPO9EMgCPDwwLcf1WqpoxcmJySyxomsRvpc2TWKHXZIapmt/RkeUXUZFwrDnRB0vxRAw8Ie2u+dc8RTcbioVcg1HtDe3C1n7VWk2/toxlcYnwYNSkp6dfNfaUdmZJrVIquJuPrhpKrZImnUEWRzN20PTqEjr27+cjVlbYOqSq7a87WTJOtNGLDYi97KKYubn6/cWwdZRSsxV1TCshJKOlg3n8Q4v9InmzoU3tJcUMy3b4ASHJKOjQWaYUQD5AcSAH9ABGABCDUB0BQABxnFasQC0ZLJGnGtj/6tmrsO1KpaJB2VY8qG+Gba+K7n/RbMz662IHXj58aWvlYhTjSlCdPGvfy2IHXvccvfIiKX62+NSu+FLSJVvZahhTH1fsiQzVVhbtfjyzbtHWwzU6cClZzpK4N/0uzW+Y7iuPqjZzLsvREX33PJ5Zr2jb7r2mnNLsHE+l5USDLdMJH+AWioy8TNlMEVU6BU+koP8kEbSstgiU7dEhQh9SUDpFURBFpB9atfalM9Kkq3wQQ2Xg7kFyl6gxINHN6pa9SaAENL037ZUS3imBWM3CBMxJjZAgI0k6dC4y/SbFBv/6tRSCMjn0N6UuTWMNZBaZqP/eEsVEk7ZSUzpleZJSU9AOFdAB5dCtBS8cpCeRC35oQiIgIChYtyfH16ft9q+wCPkN3t752g3w4ffA/g//z/zpcTugCAIggK+LJX+DnqLCGMglkB/eShh+zfFonQCnC+2jOkdlAA0BFAURohsSAgqNIqFYDmBKqIlsxOY3m6Dxi03iPGFTUmxj0yINsiUCUrSaIQsWWbjpc7IEy8KGhPAk9AVhga/KmxIwK2RMUJ1S1SoUqlFvyohtmgyYEdZs3ACeX6MRYzabMiCk1YiQMN6sGViigMQoZjya8WjGoyis8DVnj8PMrqWTH7yGhxWZNWe7EN6YcQuwJAkSZcIxpHY/FjInACswZQr20Yd57QgFR37lFiOGBRAAsslxXZEPhEAAGUhESTev4BNAV4yJpITCFMnWggQRNLUEUSOahpWmQcH79zQoksIuCihsep9WiUw+mHFfpcNJ5RbPAIv00vlZxdCCRt+KNCmWyhlKmJAlgUt8K6lVmXQuq1WUUc0KBJlhMq1WvqRlskS3KtmyVVLJPFjRNJCVqZSzBS1MuEpum0E10rGQVbhu9xgs5cGskgtug3oKXKUS0qlUkngYVauqaKklBkrSpin4ZSpbwomE1lHEOWI+8R7SgfVEjnpPNFhLfIUArCNy/n5mTVDHHFFn9nSabYl3/ZvYLI0vEfXp1gE=) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAASEAA0AAAAABXwAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHUE9TAAABMAAAAB4AAAAeRHRMdUdTVUIAAAFQAAAALQAAAC4tfxplT1MvMgAAAYAAAABTAAAAYGmlnq5jbWFwAAAB1AAAADwAAABUAMohV2dhc3AAAAIQAAAAEAAAABAAGAAhZ2x5ZgAAAiAAAADAAAAAwELfCadoZWFkAAAC4AAAADYAAAA2GnZrk2hoZWEAAAMYAAAAHwAAACQJCQOBaG10eAAAAzgAAAAXAAAAGAcQAE5sb2NhAAADUAAAAA4AAAAOAIgAiG1heHAAAANgAAAAHAAAACAAGwDzbmFtZQAAA3wAAADYAAAB3iYtQbtwb3N0AAAEVAAAADAAAABG/5SrMAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAeNpjYGRgYOBi0AFCZhc3nxAGiZzEkjwGkZKMxEwGEQYQYAER//+DSACUkQcoAAAAeNothTEOQFAQBWef/ZVevZfQqXQiKo3ix4FUDqNSOY87SBAmMxlco60k0KIJ6L/bTGM1qExFUsEjvImfrh2CA2LzfJ3gWVWYGYBcOxDoBuCVClMAeNpjYGBgAmJmIBYBkoxgmoXBAUjzMHAA5ViALF4GBYYFClv+/weykXmM/7/+f/w/9X4ASB8CAACScQ45AAEAAwAIAAoAEAAF//8ADwACACAAAAG4AwwAAwAHAAAzESERJSERISABmP6kASD+4AMM/PQ8ApQAAQAu//QCRgLGADUAAAUiLgI1NDY3IzUzNyE1ITY1NCYjIgYHJz4BMzIeAhUUBzMVIwchFSEOARUUFjMyNjcXDgEBPDBNNh4IBUp9pv7dAXcJQTonRh41KmY3LEk1HQlOfqYBJP6ICAhHPCpLKTMobgwcMUUqFiMPQ2BDFh02NR4jNS4oGC1BKCIYQ2BDDiAUPDwjKzcwMQABAAAAAQBBzvNdCF8PPPUACQPoAAAAANm84TwAAAAA3PJHEf5N/esGXQQ0AAAACQACAAAAAAAAeNpjYGRgYIn5+4qBga36n+9/UbZYoAgqYAMAjoYFkwB42mO8waDAAAJvIJiphEEPRAMANRYEYgAAAAAUABQAFAAUAGAAYAAAeNpjYGRgYGBjmMDAw5DIwArmIQAzAyMAGHQBD3jalc4BR0NRGIDhZ7VSMECAHATQXcugBlVElFIJAatu25jtOndl/ad+Wr8g0MFxGVA+eA7ne33Y8mZdq72Np9Zudsuen+w1Hd/Z6058Zbf1LbM37HjO3lToZ3eSGFukqRzrpqm9iCYqi+RCnTxVmItGum5cuHLpzLVbU6Wle0MztQfjpIl9d0oj76aGokelKJXMzQQ9hV5uhKYSmk5oSmG1lDcHze7gn5esvv5ywbm5yqeYPDK2EBw60HMkNIX0S1QpBKemaYJmQ+qJSrVS9KH0qvgFlnxHCnjaY2BiAIP/CxlsGLABNiBmZGRiYGZkZmRhL83LNDAwcAHRRgZOJhC+owEAx1QIaw==) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-thai-thai-400-normal-Bt1rR4gi.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-thai-400-normal-DKc8V4lk.woff) format("woff");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-thai-latin-ext-400-normal-DBkYO1u-.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-latin-ext-400-normal-n-X-g5Z4.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,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:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-thai-latin-400-normal-CwmoKdEh.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-latin-400-normal-YXrLwNa7.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAAWAABAAAAAACjQAAAUpAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGx4cLgZgAFQISgmCcxEQCoNQg1MLDgABNgIkAxgEIAWDNAdGDINiGw0JAB6HsXvkgEk0G+iPSRT54IH6TXsz/2NSUeh2iCgQN0KUihNzKip0RfQq/sOu30XtmO6thcB2n/Au0iANZAIRZRwECURctf7///eq/vt+Fv4TsLHFokHKy5q7a1JBN3ALuG7X4Jwc77AA1RZSAbA61EFnnpq/mxIB2PHzE5Fo7was6ADpABOyoCBt/tI5un8nC/8U9UQWAmzcr8shMYcJZFJuAXrwny2GiJVqkA6zZpIaUgM0QAIAdPWY4h2orQ9c/wf0AblYCSEApFWmAEUCEtCAhTQEsJBOM3BiRaIDLpTH1cvpUPmUSF/768kf1xC8XnOJmA3Wa7Bav6jtepTKczONJuzQD5zpak4Rw55uQ4o9mKUVp0xt8Btkz+r3SAOCw8C2ZssLQtwaN0T6gkGkzmJDGx4KGYigUu2JyPNiJGQggwaiIBAy0IIq+ryWHV23JTOukirZNZFUUTUzOvG8no2p5imTyXiRep71mTgXbsjA881xn3TZZDxeGzLQ3WJ1fzLOEbXVFXYrHZ9zPWRgCvao57WcNVvWbnn+dMQ32CPTokBAtT//zpr8xiMReOjoM4eW4syJxNJwgyVgLhjdVpfs62d781gmvpIq+czA86fnqi+ZGb/2Mnhn0ivgN4cMXB3VstsNcXqNtv00O32DARoWf9z3+ZdGQga2YM/6Le0RXyAQDyHQsGLHy5RO8wBgBsAJaEATWA0AdBBuJAAgQNerHBaXecxhso8mv/jkC3HmoSV24djsFK77HhJnPrAnP8vb9PaXjqufv/85p+9f6MC+wYXzfk5/7Lj6ZdPGNz5Tzvud3b039t6obXOUrVlxwN9R4O0u6IwduHedM7Y7v9xZeqIsp235cw1tfTP5tUU9y4f9Lbnugrre2LG71nlie57xVf5fmRNdkaiPDG4v/QyQQseKbd78GgPda8BHDGhPA4piFpjX4gbiOwO8Bx2DyFu+Ky6xLfGrUm21Rfyc34rtnRlN4cIPr17sKmoxcTsuHseF3NOiAS7EXh14h3zkGFSAEbJ7sj2z2JFzLRoe7IjBWWyIOQOXdxb3Cv7hRdxzKZZik1cDbq9B1jNJMeSCHfLABoUO7LHFkjI2ij+0uAQBCFr+U8+ODHvqr1lt2l8AX9+f6wC++x3eGx3X/zX36+2ADQmAgNbEbz5iQpQO7IHgpWUWX6G4/9tK8hiFclwAZm7HyRST3ensIJGgIQArUzSEbgP6zLFCUOo9hcTNywqNRgd36uYUJhYbUZgJKne4zwbM2P+W7FaraHCfcXsl1CT77ROejYTtwnbZa1qR1aJ6dWkVs8Z2kw5bb9RO+2wwY1RCSMykCQkH7LDJpL1uYbvspJQIK0GeuuvolDp3Yd3GaQdsN2qvO1b7PrX41KKrRtvsstuR2LqmUwFVShUrUUNx08nkV/faLUxpsd12ypZrn4pjEsOk66APvxgmASCNmNczzIAQEk1oQrcc2JkoJmcEl0uLW8vVrm0pNqBQCoEbWSgOsQcJb09SpkDAEm7AWvg2Xg1K5fKbd9mZMEGnOmGZFhk8XtKqUoHANNpUKbTSPMJ0+nWrlW8ZbTQRVSPEv280U69UNh83LKzWsmQyLWCPNZjCpZiNbvWKZFjImJ2d+kSVuokwB0n22KJJDmFO8ihLzWOnQRdxXWp2vm+3m+owhUhZaVsKDehTFqVosojYj/m7+Y/zm4mXOcBv5sN5LaNmnCPM7CMekx7rc1qZqnmamL+L/xgppmY9a5hbKcDsI8PO/Q==) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAASEAA0AAAAABVQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHUE9TAAABMAAAAB4AAAAeRHRMdUdTVUIAAAFQAAAALQAAAC4tfxplT1MvMgAAAYAAAABSAAAAYGoMn85jbWFwAAAB1AAAADwAAABUAMohV2dhc3AAAAIQAAAAEAAAABAAGAAhZ2x5ZgAAAiAAAADCAAAAwuo/LUZoZWFkAAAC5AAAADYAAAA2Gm5romhoZWEAAAMcAAAAHwAAACQJAQOLaG10eAAAAzwAAAAXAAAAGAcXAEtsb2NhAAADVAAAAA4AAAAOAIcAh21heHAAAANkAAAAHAAAACAAGwD4bmFtZQAAA4AAAADTAAABtCFnPsJwb3N0AAAEVAAAADAAAABG/6CrQQABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAeNpjYGRgYOBi0AFCZhc3nxAGiZzEkjwGkZKMxEwGEQYQYAER//+DSACUkQcoAAAAeNothTEOQEAUBec/uyLRq/8x1DqR7RWbPZDzqFTOo9ZKECYzGYKKnUTQohmYvlshWQ9q6yqq4hHexM84JGcHX0O+DghZnZsZgBptgKMbDe8K2wAAeNpjYGBgAmJmIBYBkoxgmoXBAUjzMHAA5ViALF4GBYYFClv+/weykXmM/7/+f/w/9X4ASB8CAACScQ45AAEAAwAIAAoAEAAF//8ADwACACAAAAG4AwwAAwAHAAAzESERJTMRIyABmP61/v4DDPz0TQJyAAEAK//0AlACxgA2AAAFIi4CNTQ2NyM1MzchNSE+ATU0JiMiBgcnPgEzMh4CFRQGBzMVIwchFSEGFRQWMzI2NxcOAQFEM1E4HQUDSHWX/vQBcAMEODMmRBs+Jmk6L0w2HQMETHuUAQ/+jwtANiZHJz0mbQweNkgqEBsLTVNNChUMMi4bIEQrKhswQicOGwxNU00WGzY3HipFLjMAAAAAAQAAAAEAQYjtGUpfDzz1AAkD6AAAAADZvOE7AAAAANzyRxD+R/3rBlsERQAAAAkAAgAAAAAAAHjaY2BkYGCJ+fuKgYGt8p/7f0W2aKAIKmADAI6gBZUAeNpjvMGgwAACbyCYqZpBG0QDADU4BGYAAAAAEwATABMAEwBhAGEAAHjaY2BkYGBgY5jAwMOQxsAK5iEAMwMjABjdARR42pXMNUIEQRQA0cKdkHhy3N3dXRPcfX3vxQk4EweggrF0R7rfV6CRB2qoqm0CLvgLXcUAv6GraecndA0zFELXpnrq6OAqdD1dDIVuV/BEzveLCXp9s9yS4dk4p3vI6jfvTzI8Wt9lhS3WWWCbPSv3lDjkmg87j3hSz3Rbu+dO5XnnRGdwD592BfTTQ394ToabAlXJzgP9qN6sZeId4awKp1U4r9Lzi3zyRZmM8aMdOesD9NHPuAr3YRcZ+3r0PG++QWoiixH33vfeBdxOzz8zK0BKAHjaY2BiAIP/axl8GbABNiBmZGRiYGZkZmRhL83LNDAwcAHRRgZOJhC+owEAzhsIiA==) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-thai-thai-500-normal-BrMc1XKn.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-thai-500-normal-BoHUoq0p.woff) format("woff");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-thai-latin-ext-500-normal-n470B0cW.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-latin-ext-500-normal-DcylQI4B.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,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:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-thai-latin-500-normal-DQcnnbdd.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-latin-500-normal-h5t7erDE.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,d09GMgABAAAAAAV4ABAAAAAAChgAAAUeAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGx4cLgZgAFQISAmCcxEQCoMsgzILDgABNgIkAxgEIAWDQAdGDINkG/gICB4HzvksHpSclNDkippHLXj4bGp/ZleEBnzJyIBCI8oOkMxSgBVgUI464KLU8UbB+pBL5NIngtxdgHFLKA/SQF4gooyDBAOt/2vHv09dmm5Jwz5eumAwSLdppWDtFODK0QC2Lxj9hqVZgN7e3+hB5LVU90rtdlc6G8ew80QEYKdSJREfXz6NFR0gD+AkDgrSWkvXpiP7KPxb1J0UAoL26XKrTGICmVnzYdmfLdaTTN0gHRbNJDWkBmiABABYMlYoHoI6+tr5n0FfK4uVEAJA2mUOUCQgAQ0opCGAQjpDwIkViQ64UF5Sr+VB+S2R/8+ll0Awed8SU5ZbZ1TSdqvssVybkEdY7KhdLvAY4Mx3cYolOPIDdHEQs7TjlLkafgsaLtKA4DSwJZIvC/FYyhD5qwbxehsb2ob1IQMRVGpsZzwrNoYMZNBANAVCBlpQjWe12vHJZHVKZVRmydaMGlc7Nm3N6rUpsdiTzqQiKstU7OzapyOQHUpVbPWkU6mekIHOw7o7k0JA7SLhXSQ7Zz5kYAouU1mtLpGcSGYvxCtSczzvCATUWPZhIjkPxysCI8lc5guTdeLsztKrQ4vH3JTZrTTzVGEeyvKkdkaZrg5kLxTFikx1ql9k8DDXKKAP+QzI9VrtmCEuJGzMF2CtSKklVbpTFdN/cDxkYAsum0qOxSsCgVQIgYYVO16mfJ4HADMATkAD+sAyAKAD/5IAgABdb3NYXObNDpN9U+azjz4TF58tsQvHnF24nhQX37NnErMPPnfc+vTDT7lQ6sA+7cL5FBc+dNz6fHDm7ifK+ZRzcO7HtT/2LHZ0TC48Vrm0yVVdunjq4K1l89N71hdHGsPLu0cT9bua+2MrKhOVI3Xlc8umT95YJqf2JQrbLrfWjqi5+MTSvW05gBw6Vmw+f7eB7jXgAwwYCwMi5Tbg7ykD8Y0B70X/xiC8BpZvorEc5dq0Z393ICpnl1swO1Z9Dhfl2O+OrsiwiQgXg1zIdcMaf3Ih1t3Gjvx3m+fB3mFD/GtweRXYDctrC7n/zSkudFG73V6DwDO4AGugHdZCG2ywEIpDwigboS+NxhCAYLg1HXthg6fvP6tN+xHgy7u/H+Cbvxf5/h+Z/8W8Xk8ANiQAAr4XbvMZJ1a+ZAGCiYpZfIFi/7XOyfM0qKwifVaewMl2JgQAdpCIb9EQgJVtNIRuA1YnIBV0eEsqcXNXqjHi1LzuKjVRbKvUTFRbt5s2sMORmfCAHpHqw7Y4ZKdaeMRh4cvZaY+w/Q7ZLmKVccstMWKFhD3STpiyyT6HTdthk51CpqTttdOI/fbYalbaISaFE/soMWExK0cvdbNKLx9Ojm931B6bHOIZOS5VulSpXtWP2u+Ak4+3bf8oVyotomK6KWwr558eckCYMmyPPVSg7bDSkl7D9K88Jm2rMAkA+UianGEGhJBoQhO65ei+nVGxxpFviY60qW8djhrQLIfAjWwWLdeDBh88pU2zKqU8gLX5AV7NalQq5OyP+dRTyvg5xEx+lWBUp2bViqyrJUv0iST0MotWNMfUqeBDtc6UuPbSUYKKiUFtqavSddxMh6CAsqTawrhuodJRgIqVVk2poJTbbrsEAb3wKju7zImLqZSrHJy21UpdauQqJw2UUj52GXexwqComsdsu4mqv9ZJcvjZsDQb8FPpyDGomDiypg/RD9BfQl77UTeCHF7lsG4EOAw8BjOutA6CqB37QX8R/QkOoyhxdyRQk7SAOAIAAAA=) format("woff2"),url(data:font/woff;base64,d09GRgABAAAAAASAAA0AAAAABVQAAQABAAAAAAAAAAAAAAAAAAAAAAAAAABHUE9TAAABMAAAAB4AAAAeRHRMdUdTVUIAAAFQAAAALQAAAC4tfxplT1MvMgAAAYAAAABSAAAAYGpxoOFjbWFwAAAB1AAAADwAAABUAMohV2dhc3AAAAIQAAAAEAAAABAAGAAhZ2x5ZgAAAiAAAAC4AAAAuIJK/GhoZWFkAAAC2AAAADYAAAA2GmxrsGhoZWEAAAMQAAAAHwAAACQI/wOEaG10eAAAAzAAAAAXAAAAGAcbAEhsb2NhAAADSAAAAA4AAAAOAIIAgm1heHAAAANYAAAAHAAAACAAGwD5bmFtZQAAA3QAAADZAAABwCLFP6pwb3N0AAAEUAAAADAAAABG/6irTAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAeNpjYGRgYOBi0AFCZhc3nxAGiZzEkjwGkZKMxEwGEQYQYAER//+DSACUkQcoAAAAeNothTEOQEAUBec/u5HQq/81tDoR/RYbldM4j0rlPO4gscJkJkPQqkQEbeUwfbeFZD2orauoiiK8iZ9xmJ0TfA/5viBkdW5mAGp0AI4e3IAKVQAAeNpjYGBgAmJmIBYBkoxgmoXBAUjzMHAA5ViALF4GBYYFClv+/weykXmM/7/+f/w/9X4ASB8CAACScQ45AAEAAwAIAAoAEAAF//8ADwACACAAAAG4AwwAAwAHAAAzESERJTMRIyABmP7A6OgDDPz0WAJcAAEAKP/0AlcCxgAzAAAFIi4CNTQ2NyM1MzcjNSE2NTQmIyIHJz4BMzIeAhUUBzMVIwchFSEGFRQWMzI2NxcOAQFJNlM4HQMCSHGM/QFsBjMuTDREI2s9MU42HQZLeYkBAv6SBjkzJUMmRSVuDCA3SyoNFAlTTFQPFi8qOlEoLB0xQyYaGFRMUxEUNDQhKFIrNQAAAQAAAAEAQVVJdwRfDzz1AAkD6AAAAADZvOE9AAAAANzyRxH+Qv3rBl4EUAAAAAkAAgAAAAAAAHjaY2BkYGCJ+fuKgYGt5p/Tf3G2OKAIKmADAI3fBYwAeNpjvMGgwAACbyCYqZ5BA0QDADVFBGcAAAAAEwATABMAEwBcAFwAAHjaY2BkYGBgY5jAwMOQzsAK5iEAMwMjABjyARV42pWMtWFDQRBEn5kdOv4FmBkSk5gZIjEzS7WpAlWlCcSZjvbN7ewAx+TYY2f/BIjvMOMdXpnMeJdLxjPe45fRjPdXPAdckZnxIfc8z/hSBAU62g0+udNuk6ZFUbojvqUtrqjWaZFX34MZJzZ+ceFVJ8uAAElqcgYpiIrc6CdLVfRLXZ4MYekWyqIup8EDtzzM3q9ZmiHaNtcvnacrTtJa5MzmRbME0SxDtJnxp9pgSIsiebk6GDxyzwMfolkmctGS71b8Q0XbWJloI0VWNava05vhdgr05EGRAAAAeNpjYGIAg/9bGSIYsAE2IGZkZGJgZmRmZGEvzcs0MDBwAdFGBk4mEL6jAQDSjAib) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-thai-thai-600-normal-DvfsyWAn.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-thai-600-normal-BOwfviun.woff) format("woff");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-thai-latin-ext-600-normal-BXI6PlF4.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-latin-ext-600-normal-iH120vlL.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,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:IBM Plex Sans Thai;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-thai-latin-600-normal-BR-dhaTH.woff2) format("woff2"),url(/assets/ibm-plex-sans-thai-latin-600-normal-P_JjY83V.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+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Black Ops One;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/black-ops-one-latin-400-normal-CYRH0z_U.woff2) format("woff2")}:root{--h-ctl: 30px;--h-ctl-sm: 26px;--h-ctl-touch: 40px;--h-modal-head: 48px;--h-modal-foot: 52px;--h-th: 34px;--h-row: 36px;--h-row-touch: 40px;--fs-th: 12px;--fs-tab: 14px;--h-tab: 40px;--r-ctl: 0;--r-card: 0;--r-modal: 0;--radius: 0;--r-pill: 0;--r-circ: 0;--r1: 0;--r2: 0;--r3: 0;--r4: 0;--r5: 0;--r6: 0;--r7: 0;--r8: 0;--r9: 0;--r10: 0;--r12: 0;--r14: 0;--r16: 0;--fs-body: 13.5px;--fs-small: 12.5px;--fs-h1: 22px;--fs-h1-project: 20px;--fs-h2: 16px;--fs-h3: 14px;--h-bar: 52px;--app-header-h: var(--h-bar);--ink: #101410;--ink-2: #4a524b;--ink-off: #626b64;--ink-3: #7f8981;--bg: #f7f8f5;--surface: #ffffff;--route-edge: #7d877e;--surface-2: #f1f3ee;--line: #e4e6e0;--line-strong: #cfd3ca;--dark: #0b0f0c;--dark-2: #182019;--lime: #b5d94f;--lime-ink: #11160f;--lime-soft: #eef6d6;--accent: #4e7a12;--progress: #6e9b1c;--good: #0ca30c;--warning: #fab219;--critical: #d03b3b;--series-1: #2a78d6;--series-2: #eb6834;--grid: #eceee9;--fs-bar: 13px;--shadow: 0 1px 2px rgba(16, 20, 16, .06), 0 2px 8px rgba(16, 20, 16, .04);--lime-soft-ink: #33500a;--good-bg: #e3f3e3;--good-ink: #145c14;--good-line: #b7deb7;--warn-bg: #fff4d6;--warn-ink: #7a5200;--warn-line: #f5d98f;--warn-text: #8a5a00;--bad-bg: #fbe4e4;--bad-ink: #8c1f1f;--bad-line: #efb9b9;--missing-bg: #fdf3f3;--info-bg: #e8f1fb;--info-ink: #173f6b;--info-line: #bdd6f2;--neg: #b42318;--pos: #0f7a0f;--row-soft: #fafbf8;--sel-row: #fbfdf5;--st-planned: #8a948c;--st-planned-fill: #e4e8e3;--st-progress: #2a78d6;--st-progress-fill: #dce9f9;--st-done: #0ca30c;--st-done-fill: #dcf1dc;--st-hp: #1fcf1f;--st-issue: #d03b3b;--st-issue-fill: #f9dcdc;--c-blue: #2a6fd6;--c-blue-fill: #dbe8fa;--c-teal: #0f9a96;--c-teal-fill: #d3efed;--c-green: #2e9e3e;--c-green-fill: #dcf1de;--c-lime: #8aa800;--c-lime-fill: #ebf2c6;--c-amber: #d49a00;--c-amber-fill: #fbefc4;--c-orange: #e2711d;--c-orange-fill: #fbe2cf;--c-red: #d03b3b;--c-red-fill: #f9dcdc;--c-pink: #d6458f;--c-pink-fill: #f8dbe9;--c-purple: #7a4fc4;--c-purple-fill: #e8def7;--c-grey: #7b8580;--c-grey-fill: #e4e7e4;--sched-now-fill: #fde6cc;--sched-now-line: #e8892b;--hol-dot: #c0392b;--cal-sat-fill: #fff0d6;--cal-sun-fill: #fbdcdc;color-scheme:light;font-family:IBM Plex Sans,IBM Plex Sans Thai,system-ui,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}:root[data-corners=rounded]{--r-ctl: 6px;--r-card: 10px;--r-modal: 12px;--radius: 10px;--r-pill: 999px;--r-circ: 50%;--r1: 1px;--r2: 2px;--r3: 3px;--r4: 4px;--r5: 5px;--r6: 6px;--r7: 7px;--r8: 8px;--r9: 9px;--r10: 10px;--r12: 12px;--r14: 14px;--r16: 16px}.leaflet-container .leaflet-popup-content-wrapper{border-radius:var(--r12)}.leaflet-container .leaflet-tooltip{border-radius:var(--r3)}.leaflet-container .leaflet-bar{border-radius:var(--r4)}.leaflet-container .leaflet-control-layers{border-radius:var(--r5)}.leaflet-container .leaflet-bar a:first-child{border-top-left-radius:var(--r4);border-top-right-radius:var(--r4)}.leaflet-container .leaflet-bar a:last-child{border-bottom-left-radius:var(--r4);border-bottom-right-radius:var(--r4)}.leaflet-container.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:var(--r2);border-top-right-radius:var(--r2)}.leaflet-container.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:var(--r2);border-bottom-right-radius:var(--r2)}:lang(th){font-family:IBM Plex Sans Thai,IBM Plex Sans,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg)}a{color:var(--accent)}h1{font-size:var(--fs-h1);margin:0 0 4px;font-weight:600;letter-spacing:-.01em}h2{font-size:var(--fs-h2);margin:0 0 10px;font-weight:600}h3{font-size:var(--fs-h3);margin:16px 0 8px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}code{font-size:.85em;background:var(--surface-2);padding:1px 5px;border-radius:var(--r4)}button,input,select,textarea{font:inherit;color:inherit}.muted{color:var(--ink-2)}.small{font-size:.85rem}.tiny{font-size:.72rem}.nowrap{white-space:nowrap}.center{text-align:center}.num{text-align:right;font-variant-numeric:tabular-nums}.pad{padding:16px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.spacer{flex:1}.stack>*+*{margin-top:16px}.warn-text{color:var(--warn-text);margin-top:6px}.error-text{color:var(--critical)}.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.app-header{display:flex;align-items:center;gap:6px;padding:0 12px;height:var(--h-bar);box-sizing:border-box;flex-wrap:nowrap;background:var(--dark);color:#f4f6f1;position:sticky;top:0;z-index:10;border-bottom:2px solid var(--lime)}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.logo{display:inline-flex;align-items:center;gap:10px;color:inherit}.logo-mark{flex:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}.logo-text{display:flex;flex-direction:column;line-height:1}.logo-word{font-family:Black Ops One,Impact,sans-serif;font-size:1.35rem;font-weight:400;letter-spacing:1.5px;text-transform:none;padding-bottom:3px;border-bottom:2px solid currentColor}.logo-sub{font-family:Times New Roman,Georgia,serif;font-style:italic;font-size:.7rem;margin-top:3px;opacity:.7;letter-spacing:0;text-transform:none}.brand-text{font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;color:var(--lime)}.app-nav{display:none;align-self:stretch;gap:0}.app-nav a{position:relative;display:inline-flex;align-items:center;color:#8f9a90;text-decoration:none;padding:0 8px;font-size:13px;font-weight:400;white-space:nowrap}.app-nav a:hover{color:#fff;background:var(--dark-2)}.app-nav a.active{color:#fff;font-weight:500}.app-nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--lime)}.user-box{display:flex;align-items:center;gap:8px;font-size:.85rem}.user-name{color:#f4f6f1}.role-chip{font-size:.72rem;padding:2px 8px;border:1px solid #3a443b;border-radius:var(--r-pill);color:var(--lime)}.dev-role{display:flex;align-items:center;gap:4px}.dev-badge{font-size:10px;font-weight:700;letter-spacing:.5px;padding:1px 5px;border-radius:var(--r4);background:var(--warning);color:#1b1b12}.dev-role select{height:30px;min-height:30px;font-size:13.6px;background:var(--dark-2);color:#fff;border:1px dashed var(--warning);border-radius:var(--r6);padding:0 4px}.dev-role.in-menu{display:flex;min-height:44px;padding:0 16px}.dev-role.in-menu select{height:44px;min-height:44px;flex:1;min-width:0}.dev-role.on-bar{display:none}.app-main{padding:20px;max-width:1400px;margin:0 auto}.app-main:has(>.page-wide){max-width:none;padding-inline:16px}.page-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px;flex-wrap:wrap}.breadcrumb{font-size:.85rem;color:var(--ink-2);margin-bottom:6px}.breadcrumb a{text-decoration:none}.meta-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.9rem}.center-page{min-height:100vh;display:grid;place-items:center}.app-header .btn{white-space:nowrap;height:30px;min-height:30px;padding:0 8px;font-size:var(--fs-body);display:inline-flex;align-items:center;justify-content:center}.app-header .btn-icon{width:30px;min-width:30px;padding:0}.app-header .btn-help{font-weight:700;font-size:15px}.app-header .btn-lang{min-width:36px;font-weight:600}.app-header .brand{min-height:0;flex:none}.app-header .logo{gap:6px}.app-header .logo-mark{width:28px;height:28px}.app-header .logo-word{font-size:1.25rem;letter-spacing:1px;padding-bottom:1px;white-space:nowrap}.app-header .brand-text{display:inline;white-space:nowrap;line-height:1;padding-left:10px;margin-left:2px;border-left:1px solid #3a443b;font-size:.8rem}.app-header .logo-sub{display:block;white-space:nowrap}.signout-icon{display:none}.user-box{gap:6px;flex:none}.user-name,.role-chip{display:none;white-space:nowrap}.app-header .bar-wide{display:none}.nav-menu{position:relative;flex:none}.nav-menu-pop{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;display:flex;flex-direction:column;padding:4px 0;background:var(--dark);border:1px solid #3a443b;border-radius:var(--r8);box-shadow:0 8px 24px #00000059}.nav-menu-pop a,.nav-menu-pop button{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;background:none;border:0;color:#f4f6f1;font:inherit;font-size:14px;text-align:left;text-decoration:none;cursor:pointer}.nav-menu-pop a:hover,.nav-menu-pop button:hover{background:var(--dark-2)}.nav-menu-pop a.active{box-shadow:inset 3px 0 0 var(--lime);color:var(--lime)}.nav-phone-only{display:none!important}@media(min-width:1200px){.app-nav{display:flex;margin-left:8px}.nav-menu{display:none}.app-header .bar-wide{display:inline-flex}.dev-role.on-bar{display:flex}}@media(min-width:1366px){.app-header{padding:0 20px}.app-nav a{padding:0 10px}.user-name{display:inline;max-width:12rem;overflow:hidden;text-overflow:ellipsis}.role-chip{display:inline}}@media(min-width:1200px){.app-header .role-chip{display:inline}}.nav-who{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-bottom:1px solid #3a443b;font-size:13px}.nav-who-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.nav-who .role-chip{display:inline;flex:none}@media(max-width:640px){.app-header{padding:0 8px}.app-header .logo-text{display:none}.app-header .brand{gap:6px;min-width:0;flex:0 1 auto}.app-header .brand-text{padding-left:8px;margin-left:0;min-width:0;overflow:hidden;text-overflow:ellipsis}.app-header .bar-tablet{display:none}.app-header .btn{height:40px;min-height:40px}.app-header .btn-icon{width:40px;min-width:40px}.app-header .btn-lang{min-width:40px}.nav-phone-only{display:flex!important}.nav-menu{position:static}.nav-menu-pop{position:fixed;top:var(--h-bar);left:8px;right:8px;min-width:0;max-height:calc(100dvh - var(--h-bar) - 16px);overflow-y:auto}.app-main{padding:16px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--h-ctl);padding:0 12px;font-size:var(--fs-body);line-height:1.25;border-radius:var(--r-ctl);border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font-weight:500;text-decoration:none;color:var(--ink)}.btn:hover:not(:disabled){border-color:var(--ink-3)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn-primary{background:var(--dark);color:#fff;border-color:var(--dark)}.btn-primary:hover:not(:disabled){background:var(--dark-2);border-color:var(--lime)}.btn-sm{min-height:var(--h-ctl-sm);padding:0 9px;font-size:var(--fs-small)}.btn-xs{min-height:0;padding:2px 7px;font-size:.78rem;border-radius:var(--r6);margin-right:2px}.btn-ghost{background:transparent;border-color:transparent}.btn-on-dark{background:transparent;color:#f4f6f1;border-color:#3a443b}.btn-on-dark:hover:not(:disabled){border-color:var(--lime)}.btn-danger-ghost{color:var(--critical)}.btn-danger-ghost:hover:not(:disabled){border-color:var(--critical)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}.card-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:8px;flex-wrap:wrap}.card-foot{display:flex;align-items:center;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line);flex-wrap:wrap}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.card+.card{margin-top:16px}.card-grid>.card+.card{margin-top:0}.empty{padding:32px;text-align:center;color:var(--ink-2);background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius)}.project-card,.template-card{display:block;text-decoration:none;color:inherit;text-align:left;transition:border-color .15s,transform .15s;cursor:pointer;font:inherit;width:100%}.project-card:hover,.template-card:hover{border-color:var(--lime);transform:translateY(-1px)}.project-card h2,.template-card h2{margin:8px 0 2px;font-size:1.05rem}.project-card-head{display:flex;align-items:center;gap:8px}.project-card-foot{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap;justify-content:space-between}.template-card.inactive{opacity:.6}.template-card{cursor:default}.template-open{display:block;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.template-card .project-card-head{flex-wrap:wrap}.template-foot{display:flex;justify-content:flex-end;align-items:center;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.template-foot .btn{min-height:40px}.progress-row{display:flex;align-items:baseline;gap:10px;margin:12px 0 6px}.big{font-size:1.6rem;font-weight:600;font-variant-numeric:tabular-nums}.code{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.82rem;font-weight:600;letter-spacing:.02em}.chip{font-size:.72rem;padding:2px 8px;border-radius:var(--r-pill);background:var(--lime-soft);color:var(--lime-soft-ink);font-weight:500}.chip-soon{background:var(--surface-2);color:var(--ink-3)}.key-chip{font-size:.7rem;padding:0 6px;border-radius:var(--r4);background:var(--surface-2);color:var(--ink-3);font-family:ui-monospace,monospace}.badge{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;padding:2px 8px;border-radius:var(--r-pill);font-weight:500;white-space:nowrap;border:1px solid transparent}.badge-muted,.badge-planning,.badge-cancelled{background:var(--surface-2);color:var(--ink-2)}.badge-active{background:var(--lime-soft);color:var(--lime-soft-ink)}.badge-on_hold{background:var(--warn-bg);color:var(--warn-ink)}.badge-completed{background:var(--good-bg);color:var(--good-ink)}.badge-good{background:var(--good-bg);color:var(--good-ink);border-color:var(--good-line)}.badge-warning{background:var(--warn-bg);color:var(--warn-ink);border-color:var(--warn-line)}.badge-critical{background:var(--bad-bg);color:var(--bad-ink);border-color:var(--bad-line)}.pbar{position:relative;background:var(--surface-2);border-radius:var(--r-pill);overflow:visible;height:8px;min-width:60px}.pbar-sm{height:5px}.pbar-lg{height:12px;margin-top:10px}.pbar-fill{height:100%;background:var(--progress);border-radius:var(--r-pill)}.pbar-fill.behind{background:var(--warning)}.pbar-fill.critical{background:var(--bad-ink)}.pbar-plan{position:absolute;top:-4px;bottom:-4px;width:3px;background:var(--series-1);border-radius:var(--r2);transform:translate(-1.5px);box-shadow:0 0 0 1px var(--surface)}.kpis{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:16px}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.kpi-hero{background:var(--dark);color:#f4f6f1;border-color:var(--dark)}.kpi-hero .kpi-label{color:var(--lime)}.kpi-hero .pbar{background:#2a332b}.kpi-hero .pbar-fill{background:var(--lime)}.kpi-hero .pbar-fill.behind{background:var(--warning)}.kpi-hero .pbar-plan{background:#7fb3f0;box-shadow:0 0 0 1px var(--dark)}.kpi-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);font-weight:600}.kpi-value{font-size:2rem;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2;margin:4px 0}.kpi-value-sm{font-size:1rem;margin:10px 0 6px}@media(max-width:900px){.kpis{grid-template-columns:1fr 1fr}.kpi-hero{grid-column:1 / -1}}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line-strong);margin-bottom:16px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}@media(min-width:900px){.tabs{flex-wrap:wrap;overflow:visible}}.tab{background:none;border:none;min-height:var(--h-tab);padding:0 14px;font-size:var(--fs-tab);cursor:pointer;color:var(--ink-2);border-bottom:3px solid transparent;margin-bottom:-1px;font-weight:500;white-space:nowrap;flex:none}.tab:hover{color:var(--ink)}.tab.active{color:var(--ink);border-bottom-color:var(--lime)}.tabs-row{display:flex;align-items:flex-end;border-bottom:1px solid var(--line-strong);margin-bottom:16px}.tabs-row .tabs{border-bottom:none;margin-bottom:0;flex:0 1 auto;min-width:0}.tabs-row .tab-more{color:var(--ink-3)}@media(max-width:480px){.tabs-row .tab-more .more-word,.tabs-row .tab-more .menu-caret{display:none}}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.portfolio-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.portfolio-bar h1{margin:0 8px 0 0;font-size:var(--fs-h1)}.portfolio-bar input[type=search]{flex:1 1 220px;min-width:0;max-width:360px}@media(max-width:640px){.portfolio-bar .portfolio-act{flex:1 1 100%}}.attn-strip{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 10px}.attn-item{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;font-size:.88rem;cursor:pointer;text-decoration:none}.attn-item:hover,.attn-item.on{border-color:var(--lime);background:var(--lime-soft)}.attn-mine{border-color:var(--lime);font-weight:600}.attn-clear{color:var(--ink-3)}.attn-none{color:var(--ink-3);font-size:.88rem;padding:5px 2px}.card-flag{font-size:.78rem;padding:1px 6px;border-radius:var(--r-pill);background:var(--lime-soft);color:var(--ink);white-space:nowrap}.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:12px}.project-card.slim{padding:12px 14px}.project-card.slim h2{margin:4px 0 8px;font-size:1rem;line-height:1.3}.project-card.slim .project-card-foot{margin-top:8px}.slim-progress{display:flex;align-items:center;gap:10px}.slim-progress .slim-pct{font-size:1.1rem;font-variant-numeric:tabular-nums;min-width:3.4em}.slim-progress>:last-child{flex:1}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filters input[type=search]{min-width:260px;flex:1;max-width:420px}.inline-field{display:inline-flex;align-items:center;gap:8px;font-size:.9rem}input,select,textarea{border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:0 9px;font-size:var(--fs-body);background:var(--surface);min-width:0}textarea{width:100%;resize:vertical;padding:6px 9px}fieldset{border:none;padding:0;margin:0;min-width:0}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px}.form-grid>.alert,.form-grid>p{grid-column:1 / -1}.field{display:flex;flex-direction:column;gap:4px}.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea{width:100%}.field-wide{grid-column:1 / -1}.field-label{font-size:var(--fs-small);font-weight:500;color:var(--ink-2)}.hint{font-size:.78rem;color:var(--ink-3)}.field-missing{color:var(--bad-ink);font-weight:600}.checkbox-row{display:flex;align-items:center;gap:8px;cursor:pointer}.code-area{font-family:ui-monospace,IBM Plex Mono,monospace;font-size:.8rem;line-height:1.4}.name-pair{display:grid;grid-template-columns:1fr 1fr;gap:4px;min-width:260px}.table-scroll{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table:where(:not(.ptree-table)) th{text-align:left;font-size:var(--fs-th);height:var(--h-th);color:var(--ink-2);font-weight:600;padding:0 8px;border-bottom:1px solid var(--line-strong);white-space:nowrap}.table:where(:not(.ptree-table)) td{height:var(--h-row);padding:4px 8px;font-size:var(--fs-body);border-bottom:1px solid var(--line);vertical-align:middle}.table.compact td{height:auto;padding:3px 8px}.table.table-compact td{height:auto}@media(max-width:640px){.table:where(:not(.ptree-table)) td{height:var(--h-row-touch)}.table.compact td,.table.table-compact td{height:auto}}.ptree-table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);font-weight:600;padding:8px;border-bottom:1px solid var(--line-strong);white-space:nowrap}.ptree-table td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.table th.num{text-align:right}.row-off td{opacity:.55}.row-group td{background:var(--surface-2);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.phase-table .bar-col{width:32%;min-width:140px}.method-icon{display:inline-block;width:18px;color:var(--ink-3)}.perm-roles{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:start}.perm-role-list{display:flex;flex-direction:column;gap:4px;position:sticky;top:12px}.perm-role{display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;padding:8px 12px;border-radius:var(--r8);border:1px solid transparent;background:none;color:var(--ink);font:inherit;cursor:pointer}.perm-role:hover{background:var(--surface-2)}.perm-role.on{background:var(--lime-soft);border-color:var(--lime)}.perm-role-head{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap}.perm-role-head h2{margin:0;font-size:1.15rem}.perm-role-head p{margin:2px 0 0}.perm-role-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0 4px}.perm-role-tools input[type=search]{flex:0 1 260px;min-width:0}.perm-group h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:16px 0 4px}.perm-row{display:flex;align-items:flex-start;gap:10px;padding:7px 8px;border-radius:var(--r6);cursor:pointer}.perm-row:hover{background:var(--surface-2)}.perm-row.changed{background:var(--lime-soft)}.perm-row.fixed{cursor:default;opacity:.75}.perm-row .perm-text{display:flex;flex-direction:column;gap:1px}.perm-row input.switch{margin-top:3px;flex:none}.seg{display:inline-flex;gap:2px}input.switch{appearance:none;-webkit-appearance:none;width:34px;height:20px;border-radius:var(--r-pill);background:var(--line-strong);position:relative;cursor:pointer;transition:background .15s;margin:0}input.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:var(--r-pill);background:var(--surface);box-shadow:0 1px 2px #00000040;transition:left .15s}input.switch:checked{background:var(--lime)}input.switch:checked:after{left:16px}input.switch:disabled{opacity:.55;cursor:default}input.switch:focus-visible{outline:2px solid var(--lime);outline-offset:2px}@media(max-width:760px){.perm-roles{grid-template-columns:1fr}.perm-role-list{position:static;flex-direction:row;overflow-x:auto}.perm-role{flex:none}}.perm-table td.changed{background:var(--lime-soft)}.perm-table .perm-role-actions{display:flex;gap:2px;justify-content:center;margin-top:2px}.perm-table .perm-role-tag{font-weight:400}.list-editor td input:not([type=checkbox]):not([type=color]),.list-editor td select{width:100%}.list-editor td{vertical-align:top}.swatch{display:inline-block;width:18px;height:18px;border-radius:var(--r4);border:1px solid var(--line-strong)}.plan-head{flex-wrap:nowrap;gap:6px}.plan-head .btn{white-space:nowrap;flex:none}@media(max-width:639px){.plan-head .menu-item{min-height:40px;display:flex;align-items:center}}.plan-table{min-width:880px}.plan-table .key-chip{display:none}.plan-table tr:hover .key-chip,.plan-table tr:focus-within .key-chip{display:inline}.plan-table th.col-name,.plan-table td.col-name{position:sticky;left:0;z-index:1;background:var(--surface);max-width:280px}.plan-table .row-phase td.col-name{background:var(--row-soft)}.plan-table .row-more{text-align:right;width:1%}.plan-table th,.plan-table td{padding-left:4px;padding-right:4px}.plan-table th{letter-spacing:0;font-size:var(--fs-th)}.plan-table .cell-input,.plan-table .btn-sm{font-size:.82rem}.plan-table input[type=date]{width:112px;font-size:.78rem}.plan-table .ms-done input[type=date]{width:112px}.plan-table .num-input{width:56px}.plan-table .sselect{max-width:110px}.plan-table .name-input{min-width:0;width:100%;flex:1 1 0}.plan-table .pct-slider input[type=range]{width:52px}.plan-table .pct-slider{gap:4px}.plan-table .pct-slider .pct-num{width:48px}.pct-text{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:3px 5px;border:1px solid transparent;border-radius:var(--r5);background:transparent;color:inherit;font:inherit;font-size:.82rem;cursor:text}.pct-text:hover{text-decoration:underline dotted;text-underline-offset:3px}.pct-text:focus-visible{border-color:var(--line-strong);background:var(--surface);outline:none}.plan-table .row-phase td{background:var(--row-soft);font-weight:600}.plan-table .row-ms td{font-size:.85rem}.ms-diamond{color:var(--accent);font-size:.8rem}.row-ms.ms-achieved .ms-diamond{color:var(--pos)}.row-ms.ms-overdue .ms-diamond{color:var(--neg)}.ms-done{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.ms-done input[type=date]{width:140px}.plan-table .row-checklist td{color:var(--ink-2)}.pct-slider{display:flex;align-items:center;gap:6px}.pct-slider input[type=range]{width:110px;accent-color:var(--progress);cursor:pointer}.pct-slider .pct-num{width:52px}.target-cell,.target-edit{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.target-cell .num-input,.target-edit .num-input{width:84px}.target-edit .unit-input{width:64px}.target-add{align-self:flex-start}.plan-table .row-checklist .name-input{color:var(--ink-2)}.plan-table .col-name{min-width:min(200px,40vw)}.plan-table .col-pct{min-width:100px}.tree-cell{display:flex;align-items:center;gap:6px}.tree-toggle{width:18px;flex:none;background:none;border:none;cursor:pointer;color:var(--ink-2);padding:0}.wbs-code{color:var(--ink-3);font-size:.78rem;font-variant-numeric:tabular-nums;min-width:28px}.cell-input{border:1px solid transparent;background:transparent;padding:3px 5px;border-radius:var(--r5);font-weight:inherit}.cell-input:hover,.cell-input:focus{border-color:var(--line-strong);background:var(--surface)}.name-input{flex:1;min-width:160px}.edit-text{display:block;max-width:100%;border:1px solid transparent;background:transparent;color:inherit;font:inherit;font-size:.82rem;padding:3px 5px;border-radius:var(--r5);cursor:text;text-align:left;min-height:24px}.edit-text-value{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edit-text:hover .edit-text-value{text-decoration:underline dotted;text-underline-offset:3px}.edit-text:focus-visible{border-color:var(--line-strong);background:var(--surface);outline:none}.edit-text:focus-visible:after{content:"✎";position:absolute;margin-left:4px;color:var(--ink-3)}.edit-text.name-input{flex:1 1 0;min-width:0}.edit-text.num-input{width:auto;min-width:40px;text-align:right}.plan-table .edit-text.name-input{width:100%}.plan-sheet-title .edit-text.name-input{width:100%;font-size:1rem;font-weight:600}.plan-sheet-value .edit-text{min-height:44px;display:flex;align-items:center;font-size:1rem}.plan-sheet-value .pct-text,.plan-sheet-value .sselect.quiet .sselect-btn{min-height:44px;font-size:1rem}.plan-sheet-value .sselect.quiet .sselect-arrow{opacity:1}.num-input{width:70px;text-align:right}.pct-cell{display:flex;flex-direction:column;gap:4px}.pct-value{font-variant-numeric:tabular-nums;font-weight:500}.status-done{color:var(--good-ink)}.status-on_hold{color:var(--warn-ink)}.plan-list,.plan-sheet-wrap{display:none}@media(max-width:639px){.plan-table-wrap{display:none}.plan-list{display:block;list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.plan-li{display:flex;align-items:center;min-height:44px;border-bottom:1px solid var(--line);padding-right:6px}.plan-li:last-child{border-bottom:none}.plan-li-phase{background:var(--row-soft);font-weight:600}.plan-li-check{color:var(--ink-2)}.plan-li-toggle{flex:none;width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--ink-2);padding:0;cursor:pointer}.plan-li-main{flex:1;min-width:0;min-height:44px;display:flex;align-items:center;gap:8px;background:none;border:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.plan-li-static{cursor:default}.plan-li-name{flex:1;min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.plan-li-pct{flex:none;font-variant-numeric:tabular-nums}.plan-li-status{flex:none;font-size:.78rem;font-weight:500;min-width:64px;text-align:right;color:var(--ink-2)}.plan-li-tick{min-height:36px}.plan-li-ms2{align-items:flex-start}.plan-li-ms2 .plan-li-toggle{min-height:52px}.plan-li-ms2 .plan-li-main{flex-direction:column;align-items:stretch;gap:0;padding:4px 0}.plan-li-ms2 .plan-li-name{flex:none}.plan-li-ms-line{display:flex;align-items:center;gap:8px;min-width:0}.plan-li-ms-line .plan-li-pct{flex:1;min-width:0;color:var(--ink-2)}.plan-li-ms-line .plan-li-tick{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;min-height:44px;flex:none}.plan-li-ms-line .plan-li-more{flex:none;width:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center}.plan-li-ms-line .edit-text,.plan-li-ms-line input[type=date]{min-height:44px;flex:none}.plan-sheet-wrap{display:block;position:fixed;inset:0;z-index:1100}.plan-sheet-backdrop{position:absolute;inset:0;background:#0508058c}.plan-sheet{position:absolute;left:0;right:0;bottom:0;max-height:85dvh;display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border-radius:var(--r14) var(--r14) 0 0;box-shadow:0 -8px 30px #00000040}.plan-sheet-head{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 16px;border-bottom:1px solid var(--line)}.plan-sheet-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-sheet-title .name-input{width:100%}.plan-sheet-close{flex:none;width:44px;min-height:44px;padding:0}.plan-sheet-body{overflow-y:auto;padding:8px 16px}.plan-sheet-field{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;border-bottom:1px solid var(--line)}.plan-sheet-label{flex:none;color:var(--ink-2);font-size:.85rem}.plan-sheet-value{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:6px;text-align:right}.plan-sheet-foot{display:flex;flex-wrap:wrap;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface-2)}.plan-sheet-foot .btn{min-height:44px}}.alert{border-radius:var(--r8);padding:10px 14px;font-size:.9rem}.alert ul{margin:6px 0 0;padding-left:18px}.alert-error{background:var(--bad-bg);color:var(--bad-ink);border:1px solid var(--bad-line)}.alert-warn{background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line)}.modal{background:var(--surface);color:var(--ink);border:none;border-radius:var(--r-modal);padding:0;width:min(560px,calc(100vw - 32px));box-shadow:0 12px 40px #00000059;max-height:calc(100vh - 32px)}.modal[open]{display:flex;flex-direction:column;overflow:hidden}.modal-wide{width:min(900px,calc(100vw - 32px))}.modal::backdrop{background:#0508058c}.modal-head{display:flex;align-items:center;flex:none;min-height:var(--h-modal-head);padding:0 12px 0 16px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:var(--fs-h2);font-weight:600}.modal-head .btn{width:var(--h-ctl);min-height:var(--h-ctl);padding:0}@media(max-width:640px){.modal-head .btn{min-width:40px;min-height:40px}}.modal-body{padding:16px;flex:1 1 auto;min-height:0;overflow:auto}.modal-foot{display:flex;justify-content:flex-end;align-items:center;flex:none;min-height:var(--h-modal-foot);gap:8px;padding:0 16px;border-top:1px solid var(--line);background:var(--surface-2)}.secret{background:var(--dark);color:var(--lime);padding:12px;border-radius:var(--r8);word-break:break-all;white-space:pre-wrap;font-size:.9rem}.toast-host{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:1300}@media(max-width:600px){.toast-host{bottom:calc(var(--open-card-h, 8px) + 8px)}}.toast{background:var(--dark);color:#fff;padding:8px 14px;border-radius:var(--r8);font-size:.9rem;box-shadow:var(--shadow);border-left:4px solid var(--lime)}.toast{white-space:pre-line}.toast-error{border-left-color:var(--critical)}.toast-warning{border-left-color:var(--warning)}.toast-count{margin-left:6px;opacity:.7}.config-section{border-top:1px solid var(--line);padding:12px 0}.config-section summary{cursor:pointer;padding:4px 0}.toggle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px 16px}.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.member{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r8);cursor:pointer}.member.on{border-color:var(--lime);background:var(--lime-soft)}.risk-matrix-wrap{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;gap:6px;margin-top:12px;width:max-content}.risk-axis-y{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.75rem;color:var(--ink-2);text-align:center}.risk-axis-x{grid-column:2;font-size:.75rem;color:var(--ink-2);text-align:center}.risk-matrix{display:grid;grid-template-columns:repeat(5,44px);grid-auto-rows:34px;gap:2px}.risk-cell{display:grid;place-items:center;font-size:.78rem;font-weight:600;color:#1a1a19;border-radius:var(--r4);font-variant-numeric:tabular-nums}.risk-bad{outline:2px solid var(--critical);background:repeating-linear-gradient(45deg,var(--surface),var(--surface) 4px,var(--bad-bg) 4px,var(--bad-bg) 8px)!important}.chart{position:relative;margin:0}.chart-svg{width:100%;height:auto;display:block}.chart .grid{stroke:var(--grid);stroke-width:1}.chart .axis-label{fill:var(--ink-2);font-size:11px;font-variant-numeric:tabular-nums}.chart .end-label{fill:var(--ink);font-size:12px;font-weight:500}.chart .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart .line.series-1{stroke:var(--series-1)}.chart .line.series-2{stroke:var(--series-2)}.chart .dot{stroke:var(--surface);stroke-width:2}.chart .dot.series-1{fill:var(--series-1)}.chart .dot.series-2{fill:var(--series-2)}.chart .today{stroke:var(--ink-3);stroke-width:1}.chart .crosshair line{stroke:var(--ink-3);stroke-width:1}.legend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.85rem;color:var(--ink-2);margin-bottom:4px}.key{display:inline-block;vertical-align:middle;margin-right:6px}.key-line{width:16px;height:2px;border-radius:var(--r1)}.key-line.series-1{background:var(--series-1)}.key-line.series-2{background:var(--series-2)}.tooltip{position:absolute;top:28px;transform:translate(-50%);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r8);padding:8px 10px;font-size:.82rem;pointer-events:none;box-shadow:var(--shadow);white-space:nowrap}.tooltip.tip-left{transform:translate(calc(-100% - 12px))}.tooltip-title{font-weight:600;margin-bottom:4px}.table-view{margin-top:8px;font-size:.85rem}.table-view summary{cursor:pointer;color:var(--ink-2)}.table-view table{max-width:360px}.points-map{width:100%;border-radius:var(--radius);border:1px solid var(--line);overflow:hidden;background:var(--surface-2);z-index:0}.points-map.adding,.points-map.adding .leaflet-interactive{cursor:crosshair}.map-home-btn{background:var(--surface);border:2px solid rgba(0,0,0,.2);border-radius:var(--r4);padding:4px 8px;font:500 12px IBM Plex Sans,sans-serif;cursor:pointer}.map-home-btn:hover{background:var(--lime-soft)}.flag-marker{background:none;border:none}.flag-marker .flag-badge{position:absolute;left:7px;top:20px;padding:0 3px;border-radius:var(--r3);background:#b5d94f;color:#11160f;border:1px solid #11160f;font:700 8px/10px IBM Plex Sans,sans-serif;letter-spacing:.02em;pointer-events:none;white-space:nowrap}.work-extra{padding:4px 0 8px;font-weight:500}.work-row{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;align-items:center;gap:8px;padding:5px 0;border-top:1px solid var(--line)}.work-row.off label{color:var(--ink-3)}.work-row .num-input{width:72px}.work-reset{padding:1px 6px;font-size:.75rem;color:var(--warn-text)}.work-box .hint{margin:6px 0 0}.extra-symbol{width:64px}.flag-marker svg{display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.flag-marker .flag-text{position:absolute;left:6px;top:5px;width:22px;text-align:center;font:700 9px/12px IBM Plex Sans,sans-serif;color:#fff;letter-spacing:-.02em;pointer-events:none}.flag-marker .flag-risk{position:absolute;left:26px;top:0;width:9px;height:9px;border-radius:50%;border:1.5px solid #fff}.flag-marker.selected svg{filter:drop-shadow(0 0 0 #fff) drop-shadow(0 0 4px var(--lime)) drop-shadow(0 0 2px #000);transform:scale(1.2);transform-origin:4px 37px}.station-marker{background:#fff;border:2px solid #101410;border-radius:var(--r3);display:grid!important;place-items:center;font:700 8px IBM Plex Sans,sans-serif;color:#101410}.station-marker.selected{background:var(--lime)}.leaflet-tooltip.station-label{background:#ffffffe0;border:none;box-shadow:none;font:600 11px IBM Plex Sans,sans-serif;padding:1px 5px;color:#101410}.leaflet-tooltip.station-label:before{display:none}.leaflet-container{font-family:IBM Plex Sans,IBM Plex Sans Thai,sans-serif}.cluster-marker{background:#0b0f0cd9;border:3px solid var(--lime);border-radius:50%;display:grid!important;place-items:center;color:#fff;font:600 12px IBM Plex Sans,sans-serif}.segmented{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--r9);overflow:hidden;background:var(--surface)}.segmented button{border:none;background:none;padding:7px 14px;cursor:pointer;font-weight:500;color:var(--ink-2)}.segmented button+button{border-left:1px solid var(--line)}.segmented button.active{background:var(--dark);color:var(--lime)}.btn-active{background:var(--lime);border-color:var(--lime);color:var(--lime-ink)}.map-filters{align-items:center;margin-bottom:0}.type-chips{display:flex;flex-wrap:wrap;gap:6px}.chip-toggle{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-pill);padding:3px 10px;font-size:.8rem;cursor:pointer;color:var(--ink-2)}.chip-toggle b{color:var(--ink)}.chip-toggle.on{background:var(--dark);color:#fff;border-color:var(--dark)}.chip-toggle.on b{color:var(--lime)}.point-summary{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}.alert-info{background:var(--info-bg);color:var(--info-ink);border:1px solid var(--info-line)}.map-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.map-layout.with-panel{grid-template-columns:minmax(0,1fr) 380px}.point-panel{position:sticky;top:76px;max-height:calc(100vh - 96px);overflow:auto}.point-panel h2{margin:2px 0}.facts{display:grid;grid-template-columns:110px 1fr;gap:6px 10px;margin:12px 0;font-size:.9rem}.facts dt{color:var(--ink-2);font-size:.8rem;font-weight:600}.facts dd{margin:0}.pre{white-space:pre-wrap}.risk-badge{display:inline-block;padding:2px 9px;border-radius:var(--r-pill);font-size:.8rem;font-weight:600;color:#1a1a19;border:1px solid rgba(0,0,0,.15)}.risk-fieldset{border:1px solid var(--line);border-radius:var(--r8);padding:8px 12px 12px;margin:12px 0}.risk-fieldset legend{font-size:.8rem;font-weight:600;color:var(--ink-2);padding:0 4px}.compact-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 12px}@media(max-width:1000px){.map-layout.with-panel{grid-template-columns:minmax(0,1fr)}.point-panel{position:static;max-height:none}}.route-diagram{margin:0}.route-toolbar{display:flex;align-items:center;gap:6px;margin-bottom:4px}.route-canvas{position:relative}.route-svg{width:100%;height:auto;display:block;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:pan-y}.route-svg:active{cursor:grabbing}.route-grid{stroke:var(--grid);stroke-width:1}.route-svg .axis-label{fill:var(--ink-2);font-size:11px;font-variant-numeric:tabular-nums}.route-line{stroke:var(--ink);stroke-width:4;stroke-linecap:round}.route-ref line{stroke:var(--ink);stroke-width:1.5}.route-ref rect{fill:var(--surface);stroke:var(--ink);stroke-width:1.5}.route-ref text{font-size:11px;font-weight:600;fill:var(--ink)}.route-ref,.route-flag,.route-milestone,.route-tick{cursor:pointer}.route-ref.selected rect{fill:var(--lime)}.route-flag line{stroke:var(--ink);stroke-width:1.5}.route-flag path{stroke:var(--surface);stroke-width:1}.route-flag text{font-size:8.5px;font-weight:700;fill:#fff;pointer-events:none}.route-flag.selected path{stroke:var(--ink);stroke-width:2.5}.route-milestone{stroke:var(--surface);stroke-width:1.5}.route-tick{stroke-width:2}.route-tick.selected{stroke-width:4}.route-tooltip{top:0;transform:translate(-50%,calc(-100% - 8px))}.key-swatch{width:10px;height:10px;border-radius:var(--r2)}.key-diamond{width:9px;height:9px;background:var(--ink-3);transform:rotate(45deg)}.key-square{width:9px;height:9px;background:var(--surface);border:1.5px solid var(--ink)}.portfolio-map{margin-bottom:16px}.picked-bar{display:flex;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;background:var(--surface-2);border-radius:var(--r8);flex-wrap:wrap}.milestone-table .row-selected td{background:var(--lime-soft)}.milestone-table tr{cursor:default}.badge-ms-achieved{background:var(--good-bg);color:var(--good-ink)}.badge-ms-overdue{background:var(--bad-bg);color:var(--bad-ink)}.badge-ms-upcoming{background:var(--surface-2);color:var(--ink-2)}pre.example{background:var(--surface-2);padding:8px 10px;border-radius:var(--r6);font-size:.78rem;overflow-x:auto}.labels-hidden .leaflet-tooltip.station-label{display:none}.route-span{cursor:pointer}.route-span rect{stroke:var(--surface);stroke-width:1.5}.route-span text{font-size:9px;font-weight:700;fill:#fff;pointer-events:none}.route-span.selected rect{stroke:var(--ink);stroke-width:2.5}.badge-report-draft{background:var(--surface-2);color:var(--ink-2)}.badge-report-submitted{background:var(--warn-bg);color:var(--warn-ink)}.badge-report-approved{background:var(--good-bg);color:var(--good-ink)}.badge-report-rejected{background:var(--bad-bg);color:var(--bad-ink)}.report-list{display:flex;flex-direction:column;gap:8px}.report-row{display:grid;grid-template-columns:150px 1fr auto auto;gap:12px;align-items:center;text-align:left;font:inherit;cursor:pointer;width:100%;padding:12px 16px}.report-row:hover{border-color:var(--lime)}.report-date{display:flex;gap:8px;align-items:center}.clamp-1{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:700px){.report-row{grid-template-columns:1fr auto}.report-row .report-main{grid-column:1 / -1;order:3}.report-row .report-counts{order:4}}.back-link{align-self:flex-start}@media(max-width:640px){.back-link{min-height:40px}}.report-actions{flex-wrap:wrap}.review-note{flex:1;min-width:220px}.report-lines{display:flex;flex-direction:column;gap:10px}.report-line{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px 12px;padding:12px 52px 12px 12px;border:1px solid var(--line);border-radius:var(--r8);background:var(--row-soft)}.report-line .field-wide{grid-column:1 / -1}.line-remove{position:absolute;top:8px;right:8px}.report-form input,.report-form select,.report-form textarea{font-size:16px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;margin:8px 0}.photo-tile{position:relative;padding:0;border:1px solid var(--line);border-radius:var(--r8);overflow:hidden;aspect-ratio:4 / 3;cursor:pointer;background:var(--surface-2)}.photo-tile img,.photo-tile .photo-placeholder{width:100%;height:100%;object-fit:cover;display:block}.photo-tag{position:absolute;left:4px;bottom:4px;background:#0b0f0ccc;color:var(--lime);font-size:.7rem;padding:1px 6px;border-radius:var(--r4)}.photo-caption-edit{display:flex;gap:6px;margin-top:8px}.photo-caption-edit input{flex:1;min-width:0}.photo-uploader{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin-top:6px}.point-photos{border-top:1px solid var(--line);margin-top:8px}.qty-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.qty-card{border:1px solid var(--line);border-radius:var(--r8);padding:10px 12px;display:flex;flex-direction:column;gap:4px}.big-sm{font-size:1.15rem;font-weight:600;font-variant-numeric:tabular-nums}.qty-table{min-width:700px}.qty-table .qty-cell{min-width:96px}.qty-table .row-total td{background:var(--row-soft)}.qty-table .row-group td{background:var(--row-soft);padding:0}.qty-table .group-toggle{display:block;width:100%;min-height:40px;padding:8px 10px;text-align:left;background:none;border:0;color:inherit;font:inherit;cursor:pointer}.qty-table .row-sum td{font-weight:600;border-top:2px solid var(--line-strong)}.qty-table .qty-sum-cell{white-space:nowrap}.qty-table .stale-line{max-width:14rem;margin-left:auto;overflow-wrap:anywhere}.qty-table .qty-name{position:sticky;left:0;z-index:1;max-width:min(14rem,40vw);overflow-wrap:anywhere;background:var(--surface)}.qty-table thead .qty-name{background:var(--surface);z-index:2}@media(max-width:639px){.qty-wide{display:none}.qty-list{margin-bottom:8px}.plan-sheet-value.qty-cell{text-align:right}}.qty-li-total{display:block;padding:8px 0;font-weight:600}.plan-sheet-source{margin-top:2px}.qty-table .row-total td.qty-name,.qty-table .row-sum td.qty-name{background:var(--row-soft)}.qty-table .qty-head{white-space:normal;vertical-align:bottom}.qty-table .qty-head-th{text-transform:none;letter-spacing:0}.qty-head-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.2}.qty-cell .edit-text.qty-edit{display:inline-block;min-height:28px;line-height:22px}@media(max-width:640px){.qty-cell .edit-text.qty-edit,.qty-cell input.cell-input{min-height:40px;min-width:64px}}.inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 12px}.inline-form input{width:140px}.inline-form .alert{flex-basis:100%}.rules{margin:4px 0 12px;padding-left:18px}.file-pick{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.file-pick p{flex-basis:100%;margin:4px 0 0}.import-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.import-summary .kpi-value{font-size:1.5rem}.kpi-bad{border-color:var(--bad-line);background:var(--bad-bg)}@media(max-width:600px){.import-summary{grid-template-columns:1fr 1fr}}.line-swatch{vertical-align:middle;flex:none}.route-legend{margin-top:-4px}.route-legend span{display:inline-flex;align-items:center;gap:6px}.route-list{display:flex;flex-direction:column;gap:6px}.route-item{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r8);flex-wrap:wrap}.route-item.off{opacity:.6}.route-item-main{flex:1;min-width:200px}.route-item-main .chip{margin-left:6px}.color-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.color-dot{width:24px;height:24px;border-radius:var(--r-circ);border:2px solid #fff;box-shadow:0 0 0 1px var(--line-strong);cursor:pointer;padding:0}.color-dot.on{box-shadow:0 0 0 2px var(--ink)}.color-row input[type=color]{width:36px;height:28px;padding:0 2px}.style-row{display:flex;gap:8px;flex-wrap:wrap}.style-pick{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);border-radius:var(--r8);padding:4px 8px;cursor:pointer;font-size:.85rem}.style-pick input{display:none}.style-pick.on{border-color:var(--ink);background:var(--surface-2)}.route-seq{margin-top:6px;padding:6px 8px;background:var(--surface-2);border-radius:var(--r6);font-family:ui-monospace,monospace}.picking-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;background:var(--dark);color:#f4f6f1;border-radius:var(--r10);border:2px solid var(--lime)}@media(min-width:768px){.picking-bar{top:64px}}.picking-main{flex:1;min-width:200px}.picking-bar .btn:not(.btn-primary){background:transparent;color:#f4f6f1;border-color:#3a443b}.leaflet-interactive.route-preview{filter:drop-shadow(0 0 3px #fff)}.pva-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.kpi-value-md{font-size:1.4rem}.pva-table td.neg,.table td.neg{color:var(--neg)}.pva-table td.pos,.table td.pos{color:var(--pos)}.pva-table tr.future td{color:var(--ink-3)}.plan-grid{min-width:900px}.plan-grid .sticky-col{position:sticky;left:0;background:var(--surface);z-index:1;min-width:190px}.plan-grid td .num-input{width:72px}.chart .crosshair-line{stroke:var(--ink-3);stroke-width:1}.adj-form{margin-bottom:8px}.link-badge{background:none;border:none}.link-badge span{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:radial-gradient(closest-side,#fff 72%,transparent 74% 100%),conic-gradient(var(--c) calc(var(--p) * 1%),#d9ddd4 0);box-shadow:0 1px 3px #00000059;font:700 10px/1 IBM Plex Sans,sans-serif;color:#101410;cursor:pointer}.link-badge span small{font-size:7px;font-weight:600}.link-badge.selected span{outline:3px solid var(--lime);outline-offset:1px}.badges-hidden .link-badge{display:none}.leaflet-tooltip.progress-tip{padding:8px 10px;border-radius:var(--r8);border-color:var(--line-strong);box-shadow:0 2px 10px #0000002e;white-space:normal}.tip-card{min-width:210px;max-width:300px;font:12px/1.4 IBM Plex Sans,IBM Plex Sans Thai,sans-serif;color:#101410}.tip-title{font-weight:700;font-size:13px}.tip-pct{float:right;color:#2a78d6}.tip-muted{color:#5c655e}.tip-ok{color:#0f7a0f;font-weight:600;white-space:nowrap}.tip-line{margin:4px 0}.tip-line .status-dot{margin-right:5px}.tip-bar{height:6px;background:#e4e6e0;border-radius:var(--r3);overflow:hidden;margin:5px 0 4px}.tip-bar i{display:block;height:100%;background:#6e9b1c}.tip-table{border-collapse:collapse;width:100%;margin:4px 0}.tip-table th{text-align:left;font-weight:500;color:#4a524b;padding:1px 8px 1px 0;white-space:nowrap}.tip-table td{padding:1px 0 1px 8px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tip-table td:last-child{min-width:64px}.tip-ends{border-top:1px solid #e4e6e0;margin-top:6px;padding-top:4px}.tip-ends td{text-align:left}.place-progress{margin-top:12px}.place-progress h3{margin:0 0 6px}.place-progress .table{margin-top:8px}.place-progress .pos{color:var(--pos);font-weight:600}.plain-fieldset{margin:12px 0}.plain-fieldset legend{font-size:.85rem;font-weight:600;color:var(--ink-2);margin-bottom:6px}.links-preview{margin-top:12px}.link-btn{background:none;border:none;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer;font:inherit}.km-auto{align-self:end;padding-bottom:8px}.km-rule{background:var(--surface-2);border-radius:var(--r8);padding:10px 12px}.km-table td.warn-text,.km-table .warn-text{margin:0}.tip-wide{min-width:260px;max-width:360px}.tip-nb,.tip-nb-link{padding:3px 0}.tip-nb-link{margin-left:12px;padding-left:8px;border-left:3px solid #cfd3ca}.tip-self{border:1px solid #cfd3ca;border-radius:var(--r6);padding:6px 8px;margin:4px 0;background:#fafbf8}.tip-self .tip-card{min-width:0}.tip-warn{color:#8a5a00;font-weight:600}.link-badge.needs-split span{background:#fff4d6;box-shadow:0 0 0 2px #d98e04,0 1px 3px #00000059;font-size:13px}.report-here{margin:4px 0 10px}.finish-btn{align-self:end;margin-bottom:4px;white-space:nowrap}.colour-by,.board-toolbar label{display:inline-flex;align-items:center;gap:6px}.board-day{padding:8px 12px}.board-day-head{display:flex;align-items:baseline;gap:4px 10px;flex-wrap:wrap;padding-bottom:4px}.board-day-head h3{margin:0;font-size:1rem}.board-totals{color:var(--ink-2);min-width:0}.board-waiting{color:var(--ink-3)}.board-rows{border-top:1px solid var(--line)}.board-row{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:0 8px;align-items:center;padding:3px 0;border-bottom:1px solid var(--line)}.board-row:last-child{border-bottom:none}.board-check{padding-top:0}.board-row:not(:has(.board-check input)){grid-template-columns:0 minmax(0,1fr) auto;column-gap:0}.board-row:not(:has(.board-check input)) .board-check{overflow:hidden}.board-main{text-align:left;background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;min-width:0}.board-main.static{cursor:default}.board-main:hover .board-who b{text-decoration:underline}.board-who,.board-why{overflow-wrap:anywhere}.board-why{font-size:.9rem;color:var(--warn-text)}.board-body{grid-column:2 / -1;min-width:0}.board-c-place,.board-c-work{display:inline;line-height:1.35}.board-c-work{font-size:.9rem;color:var(--ink-2)}.board-c-place{font-weight:600}.board-meta{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:2px 10px}.board-delete{margin-top:0}.board-c-who{display:none}@media(min-width:900px){.board-body{display:grid;grid-template-columns:minmax(300px,1.7fr) minmax(0,1.5fr) 3.4rem 8.2rem 7.6rem 2rem;column-gap:12px;align-items:center}.board-meta{display:contents}.board-c-place,.board-c-work{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-c-crew,.board-c-time,.board-c-state{white-space:nowrap}.board-c-crew,.board-c-time{text-align:left}.board-c-del{text-align:right}.board-del-word{display:none}}@media(max-width:899px){.board-body{display:block}.board-c-who{display:inline}.board-meta{margin-top:2px}.board-c-crew:empty{display:none}}.board-when{text-align:right;white-space:nowrap}.board-when-actions{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-top:4px}.board-row.status-missing{background:var(--missing-bg)}.board-row.status-off{opacity:.8}.board-empty{padding:4px 2px}.board-older{padding:6px 12px;background:var(--missing-bg)}.board-older-row{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.badge-danger{background:var(--bad-bg);color:var(--bad-ink)}.neg{color:var(--neg)}.mb-8{margin-bottom:8px}.problem-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}.problem-row label{display:inline-flex;align-items:center;gap:6px}.problem-row input[type=number]{width:72px}.problem-note{flex:1 1 200px}.chip-toggle.on.warn{background:var(--warn-bg);border-color:#d98e04;color:var(--warn-ink)}.big-chips .chip-toggle{padding:8px 14px;font-size:.95rem}.site-mode{display:flex;flex-direction:column;gap:12px;max-width:640px}.site-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.site-date{font-size:1.15rem;font-weight:600}.site-gps{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:var(--radius);background:var(--surface-2)}.site-gps.near{background:var(--lime-soft)}.site-card{border:1px solid var(--line-strong);border-radius:var(--radius);padding:10px 12px;background:var(--surface)}.site-card.main{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.site-card-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.site-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.site-act{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:56px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);font:inherit;cursor:pointer;text-align:left}.site-act:disabled{opacity:.55;cursor:default}.site-act-name{font-weight:600}.site-inside{min-width:0}.site-inside-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.site-inside-head .btn{min-height:40px}.site-floors{display:flex;gap:6px;max-width:100%;overflow-x:auto;padding-bottom:4px}.site-floor{flex:none;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.site-floor.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--sel-row)}.site-rooms{border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden}.site-rooms>div+div{border-top:1px solid var(--line)}.site-rooms .room-row{border-top:none;padding-left:12px;min-height:48px}.site-room-card{padding:8px 10px 10px}.site-room-card .site-card{box-shadow:none}.site-entry{position:sticky;bottom:8px;z-index:5;border:2px solid var(--accent)}.site-entry-row{display:flex;align-items:center;gap:8px;margin-top:8px}.site-entry-row input{font-size:1.4rem;width:140px}.site-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.site-send{position:sticky;bottom:0;display:flex;align-items:center;gap:10px;justify-content:flex-end;padding:10px 0;background:var(--bg)}.site-delete,.site-withdraw{align-self:flex-start;min-height:44px;margin-top:4px}.site-send-error{display:flex;align-items:center;gap:8px;flex:1;color:var(--bad-ink);background:var(--bad-bg);border:1px solid var(--bad-line);border-radius:var(--r8);padding:6px 10px}.site-qty-btn{background:none;border:0;border-bottom:1px dashed var(--line-strong);color:inherit;font:inherit;padding:4px 2px;cursor:pointer}.site-qty-edit{width:6.5em;padding:4px 6px}.site-line-unsaved{border-left:3px solid var(--critical);padding-left:6px}.site-line-unsaved>.error-text{grid-column:1 / -1}.site-send-btn{min-height:48px;font-size:1.05rem;padding:0 20px}.site-crew summary{cursor:pointer}.toast-action{margin-left:10px;background:none;border:1px solid currentColor;border-radius:var(--r6);padding:1px 8px;color:inherit;cursor:pointer;font:inherit}.toast-action:hover{background:#ffffff26}.line-code{font:700 2rem/1 IBM Plex Mono,monospace;letter-spacing:.2em;margin:4px 0}.narrow-page{max-width:720px}.drag-hint{margin:0 0 6px}.len-chip{color:var(--ink);font-weight:600}.qty-cell.not-here{color:var(--line-strong);background:var(--surface-2);text-align:center}.qty-cell.wrong-place{background:var(--warn-bg)}.multi-chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.multi-chips .chip-toggle{padding:1px 8px;font-size:.75rem}.multi-groups{flex-direction:column;align-items:flex-start;gap:2px}.point-plan-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.point-plan-row input[type=number]{width:90px}.map-add-btn{background:var(--lime);color:var(--lime-ink);border:2px solid rgba(0,0,0,.2);border-radius:var(--r6);padding:6px 10px;font:600 13px IBM Plex Sans,sans-serif;cursor:pointer}.map-add-btn.active{background:var(--surface);color:var(--ink)}.point-summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.map-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.map-menu-popup .leaflet-popup-content{margin:6px}.map-menu{display:flex;flex-direction:column;gap:2px;min-width:190px}.map-menu-item{text-align:left;background:none;border:none;padding:7px 10px;border-radius:var(--r6);font:500 13px IBM Plex Sans,sans-serif;cursor:pointer;color:#101410}.map-menu-item:hover{background:#eef6d6}.card-delete{margin-left:4px}.btn-danger{background:#b42318;border-color:#b42318;color:#fff}.btn-danger:disabled{opacity:.5}.map-toolbar{gap:8px 10px}.map-toolbar .map-search{flex:0 1 190px;min-width:150px;transition:flex-basis .15s}.map-toolbar .map-search:focus,.map-toolbar .map-search:not(:placeholder-shown){flex-basis:360px}.sselect{position:relative;display:inline-block;min-width:0;max-width:100%;vertical-align:middle}.sselect-btn{display:flex;align-items:center;gap:8px;width:100%;min-height:var(--h-ctl);border:1px solid var(--line-strong);border-radius:var(--r-ctl);padding:0 9px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer;font:inherit;font-size:var(--fs-body)}.sselect-btn:hover:not(:disabled){border-color:var(--ink-3)}.sselect.quiet .sselect-btn{border-color:transparent;background:transparent;color:inherit;min-height:24px;padding:3px 5px;gap:2px}.sselect.quiet .sselect-btn:hover:not(:disabled){border-color:transparent}.sselect.quiet .sselect-btn:focus-visible{border-color:var(--line-strong);background:var(--surface);outline:none}.sselect.quiet .sselect-value{flex:0 1 auto}.sselect.quiet .sselect-arrow{opacity:0;width:.8em;flex:none}.sselect.quiet .sselect-btn:hover .sselect-arrow,.sselect.quiet .sselect-btn:focus-visible .sselect-arrow,.sselect.quiet .sselect-btn[aria-expanded=true] .sselect-arrow{opacity:1}.sselect.quiet.status-in_progress{color:var(--info-ink)}.sselect.quiet.status-not_started{color:var(--ink-2)}.sselect-btn:disabled{opacity:.6;cursor:default}.sselect-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sselect-arrow{color:var(--ink-3);font-size:.8em}.sselect-pop{position:fixed;z-index:2000;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r8);box-shadow:0 8px 24px #10141029;padding:6px}.sselect-search{width:100%;margin-bottom:4px}.sselect-list{list-style:none;margin:0;padding:0;overflow-y:auto}.sselect-list:focus{outline:none}.sselect-opt{padding:6px 9px;border-radius:var(--r6);cursor:pointer;white-space:normal;overflow-wrap:anywhere}.sselect-opt.active{background:var(--lime-soft)}.sselect-opt.selected{font-weight:600}.sselect-opt.selected:before{content:"✓ ";color:var(--accent)}.sselect-opt.disabled{opacity:.45;cursor:default}.sselect-group{padding:6px 9px 2px;font-size:.75rem;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.03em}.sselect-none{padding:8px 9px;color:var(--ink-3)}.field .sselect,.list-editor td .sselect,.form-grid .sselect{display:block;width:100%}.report-form .sselect-btn,.report-form .sselect-search,.site-mode .sselect-btn,.sselect-pop .sselect-search{font-size:16px}.report-line{grid-template-columns:minmax(220px,1.3fr) minmax(280px,2.2fr) minmax(130px,.8fr) minmax(150px,.9fr)}.report-line .finish-btn{align-self:end}@media(max-width:900px){.report-line{grid-template-columns:minmax(0,1fr)}}.report-form,.report-lines,.report-line,.report-line>.field,.report-form .form-grid>.field{min-width:0}@media(max-width:480px){.report-line .sselect-value{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.report-line .sselect-btn{min-height:44px}.sselect-opt{min-height:44px;box-sizing:border-box;padding-top:11px;padding-bottom:11px}}@media(max-width:640px){.sselect-opt{min-height:44px;box-sizing:border-box;padding-top:11px;padding-bottom:11px}}.inline-pair{display:flex;gap:6px;align-items:center}.inline-pair .sselect{flex:1}.equipment-editor{display:flex;flex-direction:column;gap:6px;max-width:520px}.equipment-row{display:flex;align-items:center;gap:10px;padding:4px 6px;border:1px solid var(--line);border-radius:var(--r8);background:var(--surface)}.equipment-name{flex:1}.stepper{display:inline-flex;align-items:center;gap:6px}.stepper .btn{min-width:34px;font-weight:700}.stepper-value{min-width:24px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}.speech{display:inline-flex;align-items:center;gap:6px;margin-left:8px;font-weight:400}.speech .listening{background:var(--bad-bg);border-color:var(--neg);color:var(--bad-ink)}.line-photo{align-self:end}.quick-photo{display:inline-flex;align-items:center;gap:6px}.site-line{grid-template-columns:minmax(0,1fr) auto auto auto}.board-machines div{margin-top:2px}.stale-banner{background:var(--warn-bg);color:var(--warn-ink);border-bottom:1px solid var(--warn-line);padding:8px 16px;font-size:.9rem}.stale-banner code{background:#0000000f;padding:1px 6px;border-radius:var(--r4);margin-left:4px}.board-delete{color:var(--critical)}.delete-what{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.delete-what .small{flex-basis:100%}.typed-date{font-size:1.25rem;letter-spacing:.04em;font-weight:700;padding:1px 8px;background:var(--surface-2);border-radius:var(--r5)}.pvb-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.pvb-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--r10);padding:10px 12px;box-shadow:var(--shadow)}.pvb-card:hover{border-color:var(--line-strong)}.pvb-card.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.pvb-card-name{font-weight:600}.pvb-card-fig b{font-size:1.15rem}.pvb-main{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start}.pvb-grid-card{min-width:0}.pvb-side{position:sticky;top:72px}.pvb-side h2{margin-bottom:6px}.pvb-scroll{max-height:70vh}.pvb-table{font-size:.85rem}.pvb-table thead th{position:sticky;top:0;background:var(--surface);z-index:2}.pvb-table thead th.sticky-col{z-index:3}.pvb-table .sticky-col{position:sticky;left:0;background:var(--surface);z-index:1;min-width:150px;max-width:200px}.pvb-table td,.pvb-table th{padding:5px 7px;vertical-align:top}.pvb-table .pvb-name{cursor:pointer;text-align:left;font-weight:400;text-transform:none;letter-spacing:normal;font-size:.85rem;color:var(--ink)}.pvb-name:hover strong{text-decoration:underline}.pvb-sel .pvb-name{box-shadow:inset 3px 0 0 var(--lime)}.pvb-sel td,.pvb-sel .sticky-col{background:var(--sel-row)}.pvb-cell{min-width:78px;line-height:1.25}.pvb-cell .num-input{width:70px;text-align:right;padding:1px 4px}.pvb-plan{color:var(--ink-2)}.pvb-act{font-weight:600;color:var(--ink)}.pvb-act .link-btn{color:inherit;font-weight:600;text-decoration:underline dotted var(--ink-3)}.pvb-act .link-btn:hover{color:var(--accent)}.pvb-diff{font-size:.75rem}.pvb-diff.neg{color:var(--neg)}.pvb-diff.pos{color:var(--pos)}.pvb-now{background:var(--lime-soft)!important}.pvb-future .pvb-plan{color:var(--ink-3)}.pvb-total{border-left:2px solid var(--line-strong);min-width:110px}.pvb-forecast{border:1px solid var(--line);border-radius:var(--r8);padding:8px 10px;margin-bottom:10px;background:var(--surface-2)}.pvb-forecast.warn{border-color:var(--warn-line);background:var(--warn-bg)}.pvb-forecast-head{font-weight:600}.pvb-forecast ul{margin:6px 0 4px;padding-left:18px}.pvb-forecast .neg{color:var(--neg)}.pvb-forecast .pos{color:var(--pos)}.segmented-sub button{font-size:.8rem}@media(max-width:1100px){.pvb-main{grid-template-columns:minmax(0,1fr)}.pvb-side{position:static}}@media(max-width:600px){.pvb-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.pvb-table .sticky-col{min-width:110px}}:root[data-theme=dark]{color-scheme:dark;--ink: #e6ebe4;--ink-2: #b2bbb3;--ink-3: #858f87;--ink-off: #a8b2aa;--bg: #0d110e;--surface: #161b17;--route-edge: #aab3ab;--surface-2: #1f2620;--line: #2b332c;--line-strong: #3d473e;--dark: #070a08;--dark-2: #1b231c;--lime-soft: #25311a;--lime-soft-ink: #cfe98a;--accent: #b5d94f;--progress: #8cbc2c;--series-1: #5a9cec;--series-2: #f07d4c;--grid: #262e27;--shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .35);--good-bg: #16331b;--good-ink: #93dc98;--good-line: #2b5a31;--warn-bg: #3a2f12;--warn-ink: #f1c867;--warn-line: #6a5421;--warn-text: #eab758;--bad-bg: #3d1b1b;--bad-ink: #f4a3a3;--bad-line: #6d2f2f;--missing-bg: #2a1a1a;--info-bg: #14263a;--info-ink: #a3c9f2;--info-line: #2c4a6c;--neg: #f28b7f;--pos: #74d474;--row-soft: #1a201b;--sel-row: #1c2516;--st-planned: #9aa49c;--st-planned-fill: #2e362f;--st-progress: #5a9cec;--st-progress-fill: #1b3350;--st-done: #3fbf3f;--st-done-fill: #1a3a1d;--st-hp: #4cff4c;--c-blue: #6aa5f0;--c-blue-fill: #1b3350;--c-teal: #3fc0bb;--c-teal-fill: #12403f;--c-green: #5cc86a;--c-green-fill: #1a3a1d;--c-lime: #b9d84a;--c-lime-fill: #36401a;--c-amber: #f0bf3c;--c-amber-fill: #4a3b12;--c-orange: #f59a55;--c-orange-fill: #4a2d17;--c-red: #f28b7f;--c-red-fill: #4a2222;--c-pink: #f07fb4;--c-pink-fill: #4a2036;--c-purple: #b394ec;--c-purple-fill: #35264f;--c-grey: #a0a8a2;--c-grey-fill: #2e362f;--sched-now-fill: #3d2a14;--sched-now-line: #e59a4a;--hol-dot: #ff8a80;--cal-sat-fill: #2d2412;--cal-sun-fill: #3a1d20;--st-issue: #f28b7f;--st-issue-fill: #4a2222}:root[data-theme=dark] .btn-primary{background:var(--lime);border-color:var(--lime);color:var(--lime-ink)}:root[data-theme=dark] .btn-primary:hover:not(:disabled){background:#c6e46a;border-color:#c6e46a}:root[data-theme=dark] .segmented button.active,:root[data-theme=dark] .chip-toggle.on{background:var(--lime);color:var(--lime-ink);border-color:var(--lime)}:root[data-theme=dark] .chip-toggle.on b{color:var(--lime-ink)}:root[data-theme=dark] .chip-toggle.on.warn{background:var(--warn-bg);color:var(--warn-ink);border-color:#d98e04}:root[data-theme=dark] .kpi-hero{border-color:var(--line-strong)}:root[data-theme=dark] .stale-banner code{background:#ffffff14}:root[data-theme=dark] .modal::backdrop{background:#000000b3}:root[data-theme=dark] .pvb-card.on{border-color:var(--lime);box-shadow:0 0 0 1px var(--lime)}.project-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin-bottom:10px}.project-head h1{font-size:var(--fs-h1-project);margin:0}.project-head{flex-wrap:nowrap;min-width:0}.project-head h1{min-width:0;flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-head .code,.project-head .chip,.project-head .badge{flex:none}.project-info{margin:-4px 0 12px}@media(min-width:1100px){.project-top{display:flex;align-items:flex-end;gap:16px;border-bottom:1px solid var(--line-strong);margin-bottom:16px}.project-top>.project-head{flex:1 1 0;margin-bottom:8px}.project-top>.tabs-row{flex:0 0 auto;border-bottom:none;margin-bottom:0}}@media(max-width:640px){.project-head .code,.project-head .chip{display:none}.project-head .project-back{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px}}@media(max-width:640px){.project-head:not(.project-head-in) h1{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:normal}}@media(max-width:640px){.project-head-in{flex-wrap:nowrap}.project-head-in h1{min-width:0;flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-head-in .code{display:none}}.project-back{text-decoration:none;font-size:1.1rem;line-height:1;padding:3px 6px;border-radius:var(--r6)}.project-back:hover{background:var(--surface-2)}.map-wrap{position:relative;isolation:isolate}.map-layout.fill .map-main{height:100%;min-height:0}.map-layout.fill .point-panel{position:static;height:100%;max-height:100%;overflow:auto}.map-wrap>.map-counts,.map-wrap>.map-legend{position:absolute;z-index:800;background:var(--surface);border:1px solid var(--line);border-radius:var(--r8);box-shadow:var(--shadow)}.map-counts{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.map-wrap>.map-counts{top:10px;left:56px;max-width:calc(100% - 120px);padding:4px 10px}.count-chip{background:none;border:1px solid transparent;border-radius:var(--r-pill);padding:1px 7px;cursor:pointer;color:inherit;font:inherit}.count-chip:hover{border-color:var(--line-strong)}.count-chip.on{border-color:var(--ink);background:var(--surface-2)}.map-wrap>.map-legend{right:10px;bottom:26px;max-width:340px;max-height:calc(100% - 100px);overflow:auto;padding:4px 10px 8px}.map-legend-head{background:none;border:none;padding:2px 0;cursor:pointer;color:var(--ink-2);font:600 .75rem IBM Plex Sans,IBM Plex Sans Thai,sans-serif;text-transform:uppercase;letter-spacing:.05em}.map-legend .type-chips{gap:4px;margin:4px 0 6px}.map-legend .chip-toggle{font-size:.72rem;padding:2px 8px}.map-legend .route-legend{margin:6px 0 0;font-size:.75rem}.map-overlays-inline{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:flex-start}.map-overlays-inline .map-legend{flex:1 1 360px}@media(max-width:700px){.map-wrap>.map-counts{left:54px;max-width:calc(100% - 70px);font-size:.72rem}.map-wrap>.map-legend{max-width:calc(100% - 20px)}}.map-filter-pop{display:flex;flex-direction:column;gap:8px;padding:10px;width:min(320px,calc(100vw - 32px));right:auto;left:0}.map-filter-pop .map-search,.map-filter-pop .sselect{width:100%;flex:none;min-width:0}.map-info-chip{position:absolute;z-index:800;top:10px;left:56px;max-width:calc(100% - 70px)}.map-info-chip>.menu-button>.btn{background:var(--surface);box-shadow:var(--shadow);min-height:40px}.map-info-pop{right:auto;left:0;width:min(330px,calc(100vw - 72px));padding:8px 10px;gap:8px;max-height:60dvh;overflow:auto}.map-info-pop .map-counts,.map-info-pop .map-legend{position:static}@media(max-width:640px){.map-toolbar .menu-button>.btn{min-height:40px}.map-toolbar{flex-wrap:nowrap}.map-toolbar .segmented{flex:0 1 auto;min-width:0}.map-toolbar .map-tools-icon{min-width:40px;padding-inline:0}.map-layout .map-wrap{min-height:70dvh}.map-down-pill{left:50%;transform:translate(-50%);bottom:36px;min-height:var(--h-ctl-touch, 40px)}.map-info-chip{left:124px;max-width:calc(100% - 180px)}}.map-toolbar>.map-counts{padding:4px 10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r8);min-height:36px;box-sizing:border-box}.points-map .leaflet-top.leaflet-left{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin:10px 0 0 10px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r10);box-shadow:var(--shadow)}.points-map .leaflet-top.leaflet-left .leaflet-control{float:none;clear:none;margin:0}.points-map .leaflet-control-zoom{display:flex;border:1px solid var(--line-strong);box-shadow:none}.points-map .leaflet-control-zoom a{flex:1;width:auto}@media(max-width:640px){.points-map .leaflet-control-zoom a{min-height:40px;line-height:40px}}.points-map .map-home-btn,.points-map .map-add-btn{border:1px solid var(--line-strong);text-align:center}.map-down-pill{position:absolute;z-index:800;left:50%;bottom:26px;transform:translate(-50%);display:inline-flex;align-items:center;gap:6px;padding:7px 16px;min-height:36px;border-radius:var(--r-pill);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font:600 .85rem IBM Plex Sans,IBM Plex Sans Thai,sans-serif;cursor:pointer}.map-down-pill:hover{background:var(--lime-soft)}.map-route-card{scroll-margin-top:72px}@media(min-width:641px)and (max-width:900px){.map-down-pill{left:10px;transform:none;bottom:40px}}.points-map .map-wheel-tip{position:absolute;z-index:1000;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;pointer-events:none;opacity:0;transition:opacity .2s;background:#1014108c;color:#fff;font:600 1.05rem IBM Plex Sans,IBM Plex Sans Thai,sans-serif}.points-map .map-wheel-tip.show{opacity:1}.leaflet-tooltip.mini-tip{padding:5px 8px;border-radius:var(--r6);border:1px solid #cfd3ca;background:#fff;color:#101410;box-shadow:0 1px 4px #0000002e;font:500 12px IBM Plex Sans,IBM Plex Sans Thai,sans-serif;white-space:normal}.mt{min-width:150px;max-width:230px;line-height:1.3}.mt-title{font-weight:700;font-size:12px}.mt-sub{font-size:11px;color:#5c655e}.mt-warn{color:#8a5a00;font-weight:600}.mt-work{margin-top:4px;padding-top:3px;border-top:1px solid #e4e6e0}.mt-row{display:flex;justify-content:space-between;gap:10px;font-size:11px}.mt-row span{color:#4a524b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mt-row b{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.point-line{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;margin:-2px 0 8px}.nearby{display:flex;flex-direction:column;margin:10px 0;border-left:2px solid var(--line-strong);padding-left:6px}.nearby-row{display:flex;align-items:center;gap:6px;background:none;border:none;padding:3px 6px;border-radius:var(--r6);text-align:left;font:inherit;font-size:.85rem;color:var(--ink);cursor:pointer}button.nearby-row:hover{background:var(--surface-2)}.nearby-row.link{padding-left:14px;font-size:.8rem}.nearby-row.self{cursor:default;background:var(--lime-soft)}.nearby-row .status-dot{margin-right:0}.nearby-arrow{width:14px;text-align:center;color:var(--ink-3)}.panel-more{margin-top:10px;border-top:1px solid var(--line);padding-top:6px}.panel-more>summary{cursor:pointer;padding:4px 0;font-weight:600;font-size:.85rem;color:var(--ink-2);list-style-position:inside}.panel-more>summary .small{font-weight:400}.panel-more[open]>summary{margin-bottom:6px}.menu-button{position:relative}.menu-pop{position:absolute;right:0;top:calc(100% + 4px);z-index:1200;min-width:220px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r8);box-shadow:0 8px 24px #10141029;padding:4px}.menu-item{text-align:left;background:none;border:none;padding:7px 10px;border-radius:var(--r6);cursor:pointer;color:var(--ink);font:inherit;white-space:nowrap}.menu-item:hover,.menu-item:focus-visible{background:var(--lime-soft)}.menu-item-off,.menu-item-off:hover{color:var(--ink-off);cursor:default}.menu-pop .menu-item{flex-shrink:0}.menu-pop .menu-item-off{white-space:normal;max-width:26em;line-height:1.35}.ctx-menu{position:fixed;right:auto;bottom:auto;z-index:2000}@media(max-width:760px){.menu-pop{max-width:calc(100vw - 16px)}.menu-item{min-height:44px}}.ask-pm{color:var(--ink-off);font-size:.85rem;white-space:nowrap;cursor:not-allowed;font-style:italic}.building-icon{flex:none;vertical-align:-1px}.card-building{display:inline-flex;align-items:center;color:var(--ink-3)}.picked-inside{display:inline-flex;align-items:center;gap:6px}.building-facts{grid-template-columns:minmax(110px,180px) 1fr}.building-facts .legend{margin:0}.go-inside{margin:4px 0 10px}.go-inside .btn{display:inline-flex;align-items:center;gap:6px}.go-inside .muted{margin-top:4px}.go-inside .go-inside-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:40px}.point-menu-btn{min-width:40px;min-height:40px;font-size:1.2rem;line-height:1}.point-panel .menu-button{position:relative}.leaflet-tooltip.enter-tip{padding:8px 10px;border-radius:var(--r8);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);box-shadow:0 2px 10px #0000002e;white-space:normal;pointer-events:auto}.enter-card{min-width:160px;max-width:220px;line-height:1.3}.enter-card .mt-sub{color:var(--ink-3)}.enter-card-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:40px;margin-top:8px}.in-building-tick{display:flex;flex-direction:column;gap:2px;margin:10px 0 2px}.in-building-tick .hint{padding-left:24px}.in-building-problem{margin:4px 0 0;padding:6px 10px;border-radius:var(--r6);background:var(--bad-bg);color:var(--bad-ink);border:1px solid var(--bad-line)}.mt-foot{margin-top:4px;padding-top:3px;border-top:1px solid #e4e6e0;font-size:11px;font-weight:600;color:#4e7a12}.building-rows{display:flex;flex-wrap:wrap;gap:8px}.building-row{display:inline-flex;align-items:center;gap:8px;min-height:40px;max-width:100%;padding:6px 12px;border:1px solid var(--line-strong);border-radius:var(--r9);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.building-row:hover,.building-row:focus-visible{background:var(--lime-soft)}.building-row .status-dot{margin-right:0;flex:none}.building-row-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}.building-row-go{margin-left:4px;font-size:1.1rem;line-height:1;color:var(--ink-3)}.inside-top{display:flex;align-items:center;gap:8px}.inside-top .crumbs{flex:1;min-width:0}.inside-top .plan-switch{flex:none}@media(max-width:520px){.inside-top{flex-wrap:wrap}.inside-top .crumbs{flex:1 1 100%}}.inside-add{flex:none;min-height:40px;white-space:nowrap}.floors-hist{display:inline-flex;gap:6px;flex:none}.floors-hist .plan-hist{min-width:40px;min-height:40px}@media(max-width:640px){.floors-hist .plan-hist{min-width:44px;min-height:44px}}.inside .menu-item{min-height:40px}@media(max-width:760px){.inside .menu-item{min-height:44px}}.inside-refused{display:flex;align-items:flex-start;gap:8px}.inside-refused>span{flex:1;min-width:0}.inside .empty p{margin:0 0 12px}.inside .empty .btn{min-height:40px}.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:2px 6px;min-height:40px}.crumb-up{flex:none;min-width:40px;height:40px;margin-right:4px;border:1px solid var(--line-strong);border-radius:var(--r8);background:var(--surface);color:var(--ink);font-size:1.1rem;line-height:1;cursor:pointer}.crumb-up:hover{background:var(--surface-2)}.crumb{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%}.crumb>b,.crumb>.link-btn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb>.link-btn{min-height:40px;padding:0 2px;text-decoration:none}.crumb>.link-btn:hover{text-decoration:underline}.crumb-sep{color:var(--ink-3)}.plan-rooms-wait{list-style:none;margin:8px 0 0;padding:0;width:min(100%,420px);display:flex;flex-direction:column;gap:4px;text-align:left}.plan-room-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:40px;padding:4px 10px;border:1px solid var(--line-strong);border-radius:var(--r8);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}.plan-room-row:hover{background:var(--surface-2)}.plan-room-row-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-room-pill{flex:none;padding:1px 10px;border:1px solid;border-radius:var(--r-pill);font-size:.85em;color:var(--ink)}.plan-room-pill.rp-planned{border-color:var(--st-planned);background:var(--st-planned-fill)}.plan-room-pill.rp-in_progress{border-color:var(--st-progress);background:var(--st-progress-fill)}.plan-room-pill.rp-done{border-color:var(--st-done);background:var(--st-done-fill)}.plan-room-pill.rp-issue{border-color:var(--st-issue);background:var(--st-issue-fill)}.inside-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.inside-layout.with-room{grid-template-columns:minmax(0,1fr) 340px}.floors-split{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}.floors-routes{min-width:0}.floors-routes:focus{outline:none}.floors-routes .cable-routes{margin-top:0}@media(min-width:1200px){.floors-split{grid-template-columns:minmax(0,1fr) 360px;gap:16px}.floors-routes{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto}}.room-panel{position:sticky;top:76px;max-height:calc(100vh - 96px);overflow:auto}.room-panel h2{margin:2px 0}.floors{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.floor-band+.floor-band{border-top:1px solid var(--line-strong)}.floor-band:first-child .floor-head{border-radius:var(--radius) var(--radius) 0 0}.floor-band:last-child .floor-rooms>:last-child{border-radius:0 0 var(--radius) var(--radius)}.floor-head{display:flex;align-items:stretch;background:var(--row-soft)}.floor-head:hover{background:var(--surface-2)}.floor-toggle{flex:1;min-width:0;display:flex;align-items:baseline;gap:10px;min-height:40px;padding:9px 14px;border:none;border-radius:inherit;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.floor-head .menu-button{flex:none;display:flex}.floor-menu-btn{min-width:40px;min-height:40px;height:100%;border:none;border-radius:var(--r8);background:none;color:var(--ink-2);font-size:1.2rem;line-height:1;cursor:pointer}.floor-menu-btn:hover,.floor-menu-btn[aria-expanded=true]{background:var(--lime-soft);color:var(--ink)}.floor-acts{flex:none;display:flex;align-items:stretch}.floor-act{min-width:40px;min-height:40px;height:100%;border:none;border-radius:var(--r8);background:none;color:var(--ink-2);font-size:1.15rem;line-height:1;cursor:pointer}.floor-act:hover:not(:disabled),.floor-act[aria-expanded=true]{background:var(--lime-soft);color:var(--ink)}.floor-act:disabled{color:var(--ink-3);opacity:.45;cursor:not-allowed}.floor-acts .menu-button{display:flex}.floor-result-caption{margin:0}.floor-band.current .floor-head{box-shadow:inset 3px 0 0 var(--accent)}.floor-name{min-width:26px;font-size:1rem}.floor-pct{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:.9rem;font-variant-numeric:tabular-nums}.floor-pct-bar{width:44px;height:6px;border-radius:var(--r3);background:var(--line);overflow:hidden}.floor-pct-bar i{display:block;height:100%;background:var(--progress)}.floor-nowork{flex:none;font-style:italic}.floor-toggle .muted{flex:1;min-width:0}.floor-caret{display:none;flex:none;width:12px;color:var(--ink-3)}.floor-empty{margin:0;padding:10px 14px 10px 36px;border-top:1px solid var(--line)}.room-row{display:grid;grid-template-columns:12px 110px minmax(0,1fr) minmax(0,180px) 48px;align-items:center;gap:0 10px;width:100%;min-height:40px;padding:6px 14px 6px 36px;border:none;border-top:1px solid var(--line);background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.room-row:hover{background:var(--row-soft)}.room-row.on{background:var(--sel-row);box-shadow:inset 3px 0 0 var(--accent)}.room-row .status-dot{margin-right:0}.room-status,.room-kind{font-size:.85rem;color:var(--ink-2)}.room-name,.room-kind,.room-status{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kind-mark{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:var(--r2)}.room-pct{font-weight:600}.room-panel .report-here{min-height:40px;margin:0}@media(max-width:600px){.room-panel .report-here,.sl-card .report-here{min-height:44px}}.room-panel .room-edit{min-height:40px;margin:0}.room-panel .room-btns{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}.room-panel .room-plan-link{display:flex;align-items:center;min-height:40px;margin-top:8px}.room-panel .room-close{min-width:40px;min-height:40px}.room-panel .card-head>div:first-child{flex:1 1 0;min-width:0}.room-panel .card-head>.spacer{display:none}.room-panel .room-more,.room-panel .menu-item{min-height:40px}.room-panel .room-more{min-width:40px}.room-panel .card-head{flex-wrap:wrap}.room-panel .room-state{display:flex;align-items:center;gap:8px;margin:2px 0 4px}.room-panel .room-state .status-dot{margin:0;flex:none}.room-panel .room-pct{font-size:15px;font-weight:700;white-space:nowrap}.room-panel .room-state .pbar{flex:1 1 auto;height:4px;min-width:40px}.room-panel .room-facts{margin:0 0 8px}.room-panel .room-cables{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px;margin:0 0 4px}.room-panel .room-nowork{margin:0 0 4px}.room-panel .room-route-figs{list-style:none;margin:0 0 4px;padding:0}@media(max-width:600px){.plan-surface[data-card] .rn-more-wrap{display:none}}.room-panel .add-work{min-height:40px}.room-panel .menu-button{display:contents}.room-panel .menu-pop{position:static;flex:1 1 100%;order:9;min-width:0;max-width:none;margin-top:4px}.room-ceiling{color:var(--ink-3, var(--ink-2));white-space:nowrap}.room-edit-foot{align-items:center}.add-inside{display:flex;flex-direction:column;gap:10px}.add-inside p{margin:0}.add-rooms-top{display:grid;grid-template-columns:1fr 1fr;gap:12px}.add-rooms-box{white-space:pre;overflow-wrap:normal;overflow-x:auto;tab-size:12}.floor-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:132px;overflow:auto}.floor-chips .chip{font-size:.85rem}.chip-height{opacity:.75}.add-problems{margin:0;padding-left:18px}.add-preview-scroll{max-height:190px;overflow:auto;border:1px solid var(--line);border-radius:var(--r8)}.add-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.add-foot .btn,.modal:has(.add-inside) .modal-foot .btn{min-height:40px}@media(max-width:800px){.inside-layout.with-room{grid-template-columns:minmax(0,1fr)}.inside-layout.with-room .floors{display:none}.room-panel{position:static;max-height:none}}@media(max-width:700px){.picked-bar .btn{min-height:40px;display:inline-flex;align-items:center}.building-row{width:100%}.building-row-go{margin-left:auto}.crumb.far,.crumb.first-near .crumb-sep{display:none}.crumb-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;overflow-wrap:anywhere;overflow:hidden}.crumb>b{white-space:normal}.crumb-up{height:40px}.floor-caret{display:inline-block}.floor-toggle{align-items:center;min-height:48px}.floor-head{flex-wrap:wrap}.floor-toggle{order:1}.floor-head>.menu-button{order:2}.floor-acts{order:3;flex:1 0 100%;justify-content:flex-start;gap:4px;padding:0 8px 6px}.floor-band:not(.open) .floor-acts{display:none}.floor-act{min-width:44px;min-height:44px}.floor-band:last-child:not(.open) .floor-head{border-radius:0 0 var(--radius) var(--radius)}.floor-band:first-child:last-child:not(.open) .floor-head{border-radius:var(--radius)}.add-rooms-top{grid-template-columns:1fr}.floor-band:not(.open) .floor-rooms{display:none}.room-row{grid-template-columns:12px auto minmax(0,1fr) auto;gap:0 8px;min-height:48px;padding-left:14px}.room-row .status-dot{grid-area:1 / 1}.room-name{grid-area:1 / 2 / 2 / 4}.room-pct{grid-area:1 / 4}.room-kind{grid-area:2 / 2}.room-status{grid-area:2 / 3}.room-status:before{content:"· "}}.room-line{display:flex;align-items:stretch;border-top:1px solid var(--line)}.room-line .room-row{flex:1;min-width:0;width:auto;border-top:none}.room-acts{flex:none;display:flex;align-items:stretch;padding-right:6px}.room-acts .menu-button{display:flex}.floor-grip,.room-grip{cursor:grab;touch-action:none}.floor-head>.floor-grip{flex:none}.drop-hint{align-self:center;padding:0 10px;color:var(--accent);font-weight:600}.room-line.dragging,.floor-band.dragging{opacity:.5}.room-line.drop-before{box-shadow:inset 0 3px 0 var(--accent)}.room-line.drop-after{box-shadow:inset 0 -3px 0 var(--accent)}.floor-band.drop-before{box-shadow:inset 0 3px 0 var(--accent)}.floor-band.drop-after{box-shadow:inset 0 -3px 0 var(--accent)}.floor-band.drop-floor{outline:2px solid var(--accent);outline-offset:-2px}.move-floors{display:flex;flex-direction:column;gap:6px;margin-top:10px}.move-floor{justify-content:flex-start;min-height:40px}@media(max-width:640px){.floor-grip,.room-grip{display:none}.room-line .room-row{padding-right:6px}.room-acts{padding-right:4px;align-items:center}.room-acts .floor-act{min-height:44px;height:44px}.room-acts .room-add{display:none}}.plan-on{background:var(--lime-soft);color:var(--lime-soft-ink);border-color:var(--accent);font-weight:600}.plan-layout{display:flex;gap:10px;align-items:stretch;min-height:420px}.plan-strip-box{display:flex;flex-direction:column;gap:4px;width:fit-content;min-width:96px;max-width:160px;flex:none;max-height:calc(100vh - 220px)}.plan-strip{display:flex;flex-direction:column;gap:4px;min-height:0;overflow-y:auto}.plan-strip-btn{min-height:40px;min-width:40px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;text-align:left;padding:2px 8px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:var(--r8);cursor:pointer;font-size:.85rem;line-height:1.1}.plan-strip-btn.on{background:var(--lime-soft);color:var(--lime-soft-ink);border-color:var(--accent);font-weight:600}.plan-dot{font-size:.7rem;color:var(--accent)}.plan-strip-name{min-width:0;overflow:hidden;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.plan-map.leaflet-container{background:var(--surface-2)}.plan-side{width:320px;flex:none;align-self:stretch;contain:size;overflow:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px}.plan-area{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.plan-empty{align-items:center;justify-content:center;text-align:center;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--surface-2);padding:24px}.plan-empty{position:relative}@media(min-width:601px){.plan-empty[data-card]{padding-right:352px}}@media(max-width:600px){.plan-empty[data-card]{justify-content:flex-start;overflow:auto}.plan-empty[data-card] .plan-float{position:static;order:2;width:100%;max-width:none;max-height:none;margin-top:12px;border-radius:var(--radius)}}.plan-choices{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.plan-choices.open{display:block}@media(max-width:600px){.plan-choices:not(.open){flex-direction:column;align-items:stretch}}.plan-blank{display:flex;flex-direction:column;gap:10px;align-items:center}.plan-blank-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;gap:8px}@media(max-width:640px){.plan-blank-row .btn,.plan-choices:not(.open) .btn{min-height:44px}}.plan-blank-field{display:flex;flex-direction:column;gap:2px;text-align:left}.plan-blank-field input{width:7rem}.plan-blank-x{padding-bottom:8px}.plan-map path.plan-sheet{fill:var(--surface);stroke:var(--line);stroke-width:1;fill-opacity:1}.plan-map path.plan-grid{stroke:var(--line);stroke-width:1;stroke-opacity:.5;fill:none;pointer-events:none}.plan-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.plan-size{margin-right:auto}.plan-scale-bar{padding:8px 10px;border:1px solid var(--info-line);background:var(--info-bg);color:var(--info-ink);border-radius:var(--r8)}.plan-metres{width:90px}.plan-bad{color:var(--neg);flex-basis:100%}.plan-surface{position:relative;flex:1;min-height:0;isolation:isolate;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface-2)}.plan-room-keyboard{position:absolute;z-index:1200;width:1px;height:1px;margin:0;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.plan-room-keyboard:focus-within{width:auto;height:auto;max-height:50%;max-width:90%;overflow:auto;clip-path:none;top:8px;left:8px;padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r6)}.plan-room-keyboard button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.plan-map{position:absolute;inset:0;background:var(--surface-2)}.plan-map.plan-picking,.plan-map.plan-picking .leaflet-interactive{cursor:crosshair}.plan-fail{padding:16px}.plan-map path.rp{stroke-linejoin:round}.rp-box{fill-opacity:.7}.rp-pin{fill-opacity:1;stroke:var(--surface)}@keyframes rp-ring{0%{stroke:var(--accent);stroke-width:3px}50%{stroke:var(--accent);stroke-width:16px;stroke-opacity:.35}to{stroke-width:3px}}.rp-pin.rp-pulse{animation:rp-ring 1.2s ease-out 1}@media(prefers-reduced-motion:reduce){.rp-pin.rp-pulse{animation:none}}.rp-planned{stroke:var(--st-planned);fill:var(--st-planned-fill)}.rp-in_progress{stroke:var(--st-progress);fill:var(--st-progress-fill)}.rp-done{stroke:var(--st-done);fill:var(--st-done-fill)}.rp-issue{stroke:var(--st-issue);fill:var(--st-issue-fill)}.rp-pin.rp-planned{fill:var(--st-planned)}.rp-pin.rp-in_progress{fill:var(--st-progress)}.rp-pin.rp-done{fill:var(--st-done)}.rp-pin.rp-issue{fill:var(--st-issue)}.rp-live{pointer-events:none}.bv{max-width:640px;width:100%;display:flex;flex-direction:column;gap:10px}.bv-main{display:flex;flex-direction:column;gap:10px;min-width:0}.bv-body{display:grid;grid-template-columns:fit-content(160px) minmax(0,1fr);align-items:stretch}.bv-names{position:relative;min-width:40px}.bv-name-size{display:block;height:0;overflow:hidden;visibility:hidden;white-space:nowrap;font-size:13px;padding-right:8px;pointer-events:none}.bv-name-wrap{position:absolute;left:0;width:100%;transform:translateY(-50%);display:flex;flex-direction:column;justify-content:center;align-items:stretch;font:inherit;text-align:left;color:var(--ink-2);background:none;border:0;padding:0 8px 0 0;cursor:pointer;overflow:hidden}.bv-name-size-sm{font-size:12px}.bv-name{min-width:0;font-size:13px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.bv-name-count{flex:none;white-space:nowrap;font-size:12px;line-height:1.35;color:var(--ink-3)}.bv-name-wrap:hover,.bv-name-wrap:focus-visible{color:var(--ink)}.bv-name-wrap:hover .bv-name{text-decoration:underline}.bv-name-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bv-name-peek{overflow:visible;z-index:2}.bv-name-peek .bv-name{display:block;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible;background:var(--surface)}.bv-pic{position:relative}.bv-svg{display:block;width:100%;height:auto;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}.bv-hit,.bv-room{cursor:pointer}.bv-route{fill:none;stroke:var(--ink);stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}.bv-route-guess{stroke-dasharray:8 6}.bv-routes{pointer-events:none}:root[data-theme=dark] .bv-plan-img,:root[data-theme=dark] .plan-map .leaflet-image-layer{filter:invert(.9) hue-rotate(180deg)}.bv-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.bv-tools .btn{min-height:44px}.bv-tools .btn,.bv-tools .show-chip{font-weight:600}.bv-tools .btn[aria-pressed=true]{border-color:var(--accent);background:var(--lime-soft)}.bv-plate{fill:var(--surface)}:root[data-theme=dark] .bv-plate{fill:var(--surface-2)}.bv-grid{stroke:var(--line);stroke-opacity:.35;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.bv-edge{fill:none;stroke:var(--ink-3);stroke-width:1;vector-effect:non-scaling-stroke}.bv-edge-front{stroke:var(--ink-3);stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}:root[data-theme=dark] .bv-edge{stroke:var(--line)}:root[data-theme=dark] .bv-edge-front{display:none}.bv-edge-none,:root[data-theme=dark] .bv-edge-none{stroke:var(--ink-3);stroke-dasharray:5 4}.bv .rp{stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-linejoin:round}@media(max-width:767px){.bv-name-wrap{min-height:40px}}@media(max-width:600px){.bv-name-wrap{height:auto!important;overflow:visible}}.bv-hp.bv-hot .bv-route,.bv-routes .bv-hot .bv-route{stroke-width:3px}.bv-hp.bv-hot .bv-route-case,.bv-routes .bv-hot .bv-route-case{stroke-width:7px}.bv-hp.bv-pressed .bv-route,.bv-routes .bv-pressed .bv-route{stroke-width:4px}.bv-hp.bv-pressed .bv-route-case,.bv-routes .bv-pressed .bv-route-case{stroke-width:8px}.bv-legend-block{display:flex;flex-direction:column;gap:8px}.bv-chips{display:flex;flex-wrap:wrap;gap:8px}@media(min-width:1024px){.bv.bv-wide{max-width:none;display:grid;grid-template-columns:minmax(0,780px) 320px;justify-content:center;gap:24px;align-items:start}.bv-side{position:sticky;top:calc(var(--app-header-h) + 12px);max-height:calc(100dvh - var(--app-header-h) - 24px);overflow:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px}.bv-side .focus-chip{margin:0}}@media(max-width:1023px){.bv-tools{position:sticky;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);padding:6px 0;flex-wrap:nowrap}.bv-tools .btn,.bv-tools .plan-pop-wrap{flex:1 1 0;min-width:0}.bv-tools .plan-pop-wrap{flex-basis:10px}.bv-tools .btn{padding-left:4px;padding-right:4px}.bv-tools .show-chip{width:100%;font-size:inherit;min-height:44px}.bv-tools:has(.show-pop){z-index:1200}}@media(max-width:640px){.bv-body{grid-template-columns:fit-content(96px) minmax(0,1fr)}}.rp:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rp-editable{cursor:move;touch-action:none;stroke-width:3}.leaflet-marker-icon.rp-handle{touch-action:none;background:none;border:0}.rp-handle span{display:block;box-sizing:border-box;width:24px;height:24px;margin:10px;border-radius:50%;background:var(--surface);border:2px solid var(--accent);cursor:grab}.rp-corner.on span{background:var(--accent)}.rp-add span{position:relative;width:18px;height:18px;margin:13px;border-style:dashed;cursor:pointer}.rp-add span:after{content:"+";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;color:var(--accent)}.plan-notyet{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.plan-todo-chip{display:inline-flex;align-items:center;gap:6px}.plan-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;font-size:.8rem;color:var(--ink-2)}.rp-dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:baseline}.rp-dot-planned{background:var(--st-planned)}.rp-dot-in_progress{background:var(--st-progress)}.rp-dot-done{background:var(--st-done)}.rp-dot-issue{background:var(--st-issue)}.plan-notyet{margin:0}.plan-shapes{display:inline-flex;gap:4px}.plan-place-hint{flex:1;min-width:140px}.plan-bar.plan-place-bar .plan-place-cancel{flex:none;width:96px;min-height:40px;margin-left:auto}.plan-place-bar,.plan-bar.plan-place-bar .btn,.plan-place-hint{font-size:var(--fs-bar)}.plan-pick-backdrop{position:fixed;inset:0;z-index:900}.plan-pick{position:absolute;right:0;top:38px;z-index:901;list-style:none;padding:4px;min-width:240px;max-height:50vh;overflow-y:auto;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r8);box-shadow:var(--shadow)}.plan-pick-item{display:flex;justify-content:space-between;gap:12px;width:100%;text-align:left;background:none;border:none;color:var(--ink);font:inherit;padding:8px 10px;border-radius:var(--r6);cursor:pointer}.plan-pick-item:hover{background:var(--surface-2)}.plan-pick-new{font-weight:600}.plan-new{padding:12px;display:flex;flex-direction:column;gap:8px}.plan-new-actions{display:flex;gap:8px}.plan-new-title{font-size:var(--fs-bar)}.plan-new-at{position:fixed;right:auto;width:260px;min-width:0}.plan-chip{position:absolute;top:52px;left:54px;z-index:500;display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--r8);background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line)}.plan-scalerow{position:absolute;left:10px;bottom:10px;z-index:500;display:flex;align-items:flex-end;gap:8px;pointer-events:none}.plan-scalebar{white-space:nowrap;position:relative;z-index:500;display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:var(--ink);background:var(--surface);padding:3px 8px;border-radius:var(--r6);opacity:.92;pointer-events:none}.plan-scalebar-line{height:6px;border:2px solid var(--ink);border-top:none}@media(max-width:700px){.plan-bar .btn,.plan-pick-item{min-height:44px}.plan-pick{position:fixed;inset:auto 0 0;margin:0;max-height:60vh;border-radius:var(--r12) var(--r12) 0 0}.plan-layout{gap:6px}}.plan-layout:has(.plan-surface){height:calc(100dvh - 273px);min-height:517px}.plan-layout.plan-full{position:fixed;inset:0;z-index:60;padding:10px;box-sizing:border-box;background:var(--surface)}.plan-layout.plan-full:has(.plan-surface){height:auto;min-height:0}.plan-full .plan-strip-box{max-height:none}.plan-tools{position:absolute;top:10px;left:54px;z-index:1100;display:flex;flex-wrap:wrap;gap:6px;max-width:calc(100% - 64px)}.plan-pop-wrap{position:relative}.plan-tool-chip{min-height:32px;padding:0 12px;border-radius:var(--r16);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;font-size:.85rem;cursor:pointer;box-shadow:var(--shadow)}.plan-tool-chip:hover,.plan-tool-chip[aria-expanded=true]{background:var(--surface-2)}@media(max-width:640px){.plan-tool-chip{min-height:40px}}.plan-tool-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.plan-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:1110;min-width:200px;max-width:min(320px,calc(100vw - 80px));max-height:50dvh;overflow:auto;padding:8px 10px;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r8);box-shadow:var(--shadow)}.plan-pop .plan-legend{flex-direction:column}.plan-todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.plan-todo-list li{display:flex;align-items:center;justify-content:space-between;gap:12px}.plan-float{position:absolute;top:8px;right:8px;z-index:900;width:320px;max-width:calc(100% - 16px);max-height:calc(100% - 16px);overflow:auto;border-radius:var(--radius);box-shadow:var(--shadow)}.plan-float .room-panel{position:static;max-height:none;overflow:visible;margin:0}.plan-tool-chip[aria-pressed=true]{border-color:var(--accent)}.rn-layer{position:absolute;left:0;top:0;z-index:500;pointer-events:none}.rn-text{font-weight:600;fill:var(--ink);stroke:var(--surface);stroke-width:3px;stroke-linejoin:round;paint-order:stroke;pointer-events:none}.rn-leader{stroke:var(--ink-2);stroke-width:1;opacity:.7;fill:none;stroke-linejoin:round}.rn-dot{fill:var(--ink-2);stroke:var(--surface);stroke-width:1}.rn-frame{fill:color-mix(in srgb,var(--surface) 85%,transparent);stroke:var(--line-strong);stroke-width:1}.rn-layer .rn-click{pointer-events:auto;cursor:pointer}.rn-layer .rn-click.rn-sel{pointer-events:none}.rn-more-wrap{position:relative;pointer-events:auto}.rn-more{min-height:32px;padding:0 12px;border-radius:var(--r16);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:.8rem;font-weight:600;cursor:pointer}.rn-more:hover{background:var(--surface-2)}.rn-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:640px){.rn-more{min-height:40px}}.rn-list{position:absolute;left:0;bottom:calc(100% + 6px);z-index:600;min-width:180px;max-width:min(280px,calc(100vw - 32px));max-height:40vh;overflow-y:auto;display:flex;flex-direction:column;padding:4px;border:1px solid var(--line-strong);border-radius:var(--r8);background:var(--surface);box-shadow:0 4px 14px #00000040}.rn-list-head{padding:4px 10px;font-size:.75rem;font-weight:600;color:var(--ink-2)}.rn-list-item{text-align:left;background:none;border:none;padding:7px 10px;border-radius:var(--r6);cursor:pointer;color:var(--ink);font:inherit;min-height:32px}.rn-list-item:hover{background:var(--surface-2)}.rn-list-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media(max-width:640px){.rn-list-item{min-height:44px}}@media(max-width:600px){.plan-surface[data-card] .plan-scalerow{bottom:calc(var(--card-h, 32px) + 8px)}}.crumbs .crumb.crumb-card{display:none}.inside-top .crumb:has(+.crumb-card){flex:0 1 auto;max-width:100%}.inside-top .crumb:has(+.crumb-card) .crumb-floor-btn,.inside-top .crumb:has(+.crumb-card) .link-btn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rn-solid{fill:var(--surface)}.plan-tool-note{display:inline-flex;align-items:center;cursor:default}.rn-ee{font-size:.8em;font-weight:700;fill:var(--warn-ink)}.route-card .route-acts{display:flex;align-items:center;gap:8px;margin:8px 0;flex-wrap:wrap}.route-card .route-acts .btn{min-height:40px}.cable-hint{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0}@media(max-width:520px){.plan-layout{flex-direction:column}.plan-strip-box{flex-direction:row;width:auto;min-width:0;max-width:none;max-height:none}.plan-strip{flex:0 1 auto;flex-direction:row;min-width:0;overflow-x:auto;overflow-y:hidden}.plan-strip-btn{flex:none;min-width:56px;flex-direction:column;justify-content:center;padding:2px 4px;text-align:center}.plan-strip-name{display:block;max-width:8em;white-space:nowrap;text-overflow:ellipsis}.plan-layout:has(.plan-surface){height:auto;min-height:0}.plan-surface{flex:none;height:min(70dvh,calc((100vw - 32px) / var(--plan-aspect, 1.5) + 56px));min-height:240px}.plan-layout.plan-full .plan-surface{flex:1;height:auto;min-height:0}}@media(max-width:600px){.plan-float{inset:auto 0 0;width:auto;max-width:none;max-height:45%;border-radius:var(--r12) var(--r12) 0 0}}:root{--route: #6b4fa3}:root[data-theme=dark]{--route: #b9a2ec}.cable-routes{margin-top:18px}.cable-routes h3{margin:0 0 8px}.cable-empty{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cable-empty p{margin:0}.cable-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.cable-search{width:100%;max-width:320px;margin-bottom:8px}.cable-row{display:flex;align-items:stretch;gap:4px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.cable-row.on{border-color:var(--accent);background:var(--lime-soft)}.cable-row.hover{border-color:var(--ink);background:var(--surface-2);box-shadow:inset 3px 0 0 var(--ink)}.cable-open{flex:1;min-width:0;min-height:44px;display:flex;flex-direction:column;gap:2px;text-align:left;padding:8px 10px;background:none;border:0;color:inherit;font:inherit;cursor:pointer}.cable-l2,.cable-l4,.cable-laid-fig{overflow-wrap:anywhere}@media(max-width:600px){.route-card .cable-laid-fig{display:block}}.cable-cores,.nb{white-space:nowrap}@media(max-width:600px){.cable-l1{display:flex;align-items:center;min-width:0}.cable-l1 b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cable-l1 .csw{flex:none}.cable-row .cable-l3{display:flex;min-width:0;gap:0 .3em}.cable-row .cable-l3 .nb{flex:none}.cable-row .cable-l3 .nb:last-child{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.cable-row .cable-per{display:none}}.route-card .card-head{flex-wrap:nowrap;align-items:flex-start}.route-card .card-head h2{margin:0;min-width:0;overflow-wrap:anywhere}.route-card .route-close{min-width:40px;min-height:40px}@media(max-width:640px){.plan-float:has(.route-card){inset:auto 0 0;width:auto;max-width:none;max-height:min(50dvh,60%);overflow:hidden;display:flex;flex-direction:column;border-radius:var(--r12) var(--r12) 0 0}.plan-float .route-card{display:flex;flex-direction:column;min-height:0;flex:1}.route-card .route-body{min-height:0;overflow:auto}.plan-float .route-card{padding:8px 14px}.route-card .card-head{margin-bottom:0}.route-card>p{margin:2px 0}}.piece-total{font-weight:600}.route-status{display:inline-flex;align-items:center;gap:4px}.cable-form .cable-cores{display:flex;gap:6px;align-items:center}.cable-form .cable-cores input{width:6em}.cable-form .btn{min-height:40px}.cr{fill:none;stroke:var(--route)}.cr-dim{stroke-opacity:.55}.cr-on,.cr-focus{stroke-opacity:1}.cr-faded{stroke-opacity:var(--fade-line)}.cr.cr-hover{filter:drop-shadow(0 0 2px var(--ink))}.cr-len{position:absolute;left:0;top:0;font-size:11px;line-height:1.2;padding:1px 4px;white-space:nowrap;background:var(--surface);color:var(--ink);border-radius:var(--r4);pointer-events:none}.plan-focus{position:absolute;top:96px;left:10px;right:10px;z-index:500;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:4px 10px;border-radius:var(--r8);background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);width:fit-content;max-width:calc(100% - 20px)}.plan-focus .btn{min-height:44px}.plan-tools .plan-focus{position:static;width:auto;max-width:100%;min-height:32px;padding:0 4px 0 12px;border-radius:var(--r16);font-size:.85rem;box-shadow:var(--shadow);flex-wrap:nowrap}.plan-tools .plan-focus .btn{min-height:30px;border-radius:var(--r14)}@media(max-width:640px){.plan-tools .plan-focus,.plan-tools .plan-focus .btn{min-height:40px}}.cr-guess{stroke-dasharray:8 6}.cr-hit{cursor:pointer}.plan-picking .cr-hit,.plan-picking .cr-pill-icon{pointer-events:none!important}.cr-pill-icon{background:none;border:0}.cr-pill{position:absolute;left:0;top:0;min-width:40px;min-height:40px;padding:0 10px;white-space:nowrap;border-radius:var(--r-pill);border:1.5px solid var(--route);background:var(--surface);color:var(--ink);font:inherit;font-size:.8rem;cursor:pointer;opacity:.85}.cr-pill.cr-short{min-width:40px;padding:0 8px}.cr-pill.cr-chip{min-width:0;min-height:0;height:22px;padding:0 8px;font-size:.72rem;line-height:20px}.cr-pill.cr-chip:after{content:"";position:absolute;inset:-9px}.cr-pop{position:absolute;z-index:1200;max-width:70%;max-height:60%;overflow:auto;padding:4px;border-radius:var(--r8);border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:var(--shadow);font-size:.8rem}.cr-pop-floor{padding:4px 8px 2px;font-weight:600;white-space:nowrap}.cr-pop button{display:block;width:100%;min-height:40px;padding:0 8px;text-align:left;background:none;border:0;border-radius:var(--r6);color:inherit;font:inherit;cursor:pointer}.cr-pop button:hover,.cr-pop button:focus-visible{background:var(--surface-2)}.cr-pill.cr-nodest{border-color:var(--warning)}.cr-pill.cr-on{opacity:1;border-width:2.5px;font-weight:600}.leaflet-marker-icon.rt-handle{touch-action:none;background:none;border:0}.rt-handle span{display:block;box-sizing:border-box;width:14px;height:14px;margin:15px;border-radius:50%;background:var(--route);border:2px solid var(--surface);box-shadow:0 0 0 2px var(--route);cursor:grab}.rt-handle.rt-end span{width:18px;height:18px;margin:calc(50% - 9px) 0 0 calc(50% - 9px);border-radius:var(--r2)}.rt-handle.rt-riser span{width:16px;height:16px;margin:calc(50% - 8px) 0 0 calc(50% - 8px);border-radius:var(--r2);transform:rotate(45deg)}.plan-edit-hint{margin:4px 0 0}.rt-handle.rt-busy{opacity:.4;pointer-events:none}.rt-handle.on span{box-shadow:0 0 0 4px var(--route)}.cr-hit.cr-add{cursor:copy}.plan-roomedit .cr-pill-icon{pointer-events:none!important}.route-pieces ul{list-style:none;margin:4px 0 8px;padding:0}.piece-row{display:flex;flex-wrap:nowrap;align-items:center;gap:4px 8px;min-height:44px}.piece-row .piece-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.piece-row .piece-undo{flex:none;min-width:20px;min-height:20px;box-sizing:content-box;padding:12px;margin:-12px 0}.piece-row>.muted{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.piece-fig{min-height:44px;min-width:44px;padding:0 6px;background:none;border:0;border-bottom:1px dashed var(--line-strong);color:inherit;font:inherit;cursor:pointer}.piece-edit{display:inline-flex;flex-direction:column;gap:2px}.piece-edit input{width:7em;min-height:44px}.piece-bad{border-color:var(--critical);outline:1px solid var(--critical)}.piece-undo{min-width:44px;min-height:44px}.route-saving{margin-left:8px}.route-add-v{display:flex;flex-direction:column;gap:8px;margin:0 0 10px}.route-add-v .btn,.route-add-v input{min-height:44px}.plan-gen{display:flex;flex-direction:column;gap:10px;align-items:stretch;width:min(100%,440px);text-align:left}.plan-gen-switch{display:flex;gap:4px}.plan-gen-text{width:100%;font:inherit;resize:vertical}.plan-gen-wide,.plan-gen-wide select{width:100%}.plan-gen-sketch{width:100%;max-height:200px;background:var(--surface-2);border-radius:var(--radius)}.plan-gen-names{display:flex;flex-direction:column;gap:6px}.plan-gen-bad{margin:4px 0;padding-left:18px}@media(max-width:640px){.plan-gen-switch .btn{flex:1}}@media(max-width:420px){.plan-gen-switch{display:grid;grid-template-columns:1fr 1fr}.plan-gen-switch .btn{min-height:44px;white-space:normal;word-break:keep-all;overflow-wrap:normal;line-height:1.25}}.plan-upload{display:inline-flex;flex-direction:column;align-items:center;gap:4px}@media(max-width:600px){.plan-upload{align-items:stretch;text-align:center}}.copy-rooms{display:flex;flex-direction:column;gap:10px}.copy-rows{list-style:none;margin:0;padding:0;max-height:40vh;overflow:auto;border:1px solid var(--line);border-radius:var(--r8)}.copy-rows li+li{border-top:1px solid var(--line)}.copy-row{display:flex;align-items:center;gap:10px;padding:8px 10px;cursor:pointer}@media(max-width:700px){.copy-row{min-height:44px}}.sch-box{max-height:calc(100dvh - 340px);min-height:0;overflow:auto;border:1px solid var(--line);border-radius:var(--r8)}@media(min-width:641px){.progress-tab .pvb-grid-card:not(.sch-full){padding:0;background:transparent;border:0;box-shadow:none}.progress-tab .pvb-grid-card:not(.sch-full) .card-head{margin-bottom:8px}.sch-box{overflow:auto;min-height:280px}.sch-box.has-panel{padding-right:360px;box-sizing:border-box}}.sch{--sch-head-h: 28px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:.875rem;width:max-content}.sch th,.sch td{padding:0 4px;height:34px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:var(--surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sch thead th{position:sticky;z-index:3;text-align:center;font-weight:600;color:var(--ink-2);box-sizing:border-box;height:var(--sch-head-h);line-height:18px;padding:0 2px}.sch .r1{top:0}.sch .r2{top:var(--sch-head-h)}.sch .r3{top:calc(var(--sch-head-h) * 2);font-weight:400;font-size:.8rem}.sch .band{text-align:left;padding-left:6px;border-left:2px solid var(--line-strong)}.sch .frz{position:sticky;z-index:2}.sch thead .frz{z-index:5;top:0;text-align:left;padding-left:6px}.sch .c1{left:0;width:32px;min-width:32px;text-align:center}.sch .c2{left:32px;width:220px;min-width:220px}.sch .c3{left:252px;width:64px;min-width:64px;text-align:right;border-right:2px solid var(--line-strong)}.sch .c4{width:54px;min-width:54px}.sch .c5,.sch .c6{width:80px;min-width:80px}.sch .c7{width:150px;min-width:150px}.sch{min-width:100%}.sch col.c7,.sch td.c7,.sch th.c7{width:150px}.sch td.c7,.sch th.c7{max-width:150px}.sch .c7{position:sticky;left:var(--frz-w);z-index:2;border-right:2px solid var(--line-strong)}.sch thead .c7{z-index:5}.sch{--colw: 56px;--frz-w: 316px}.sch-u{display:none}.sch.staff{--frz-w: 336px}.sch.staff .c3{width:84px;min-width:84px}.sch.staff .sch-u{display:inline;font-size:.78rem;color:var(--ink-2)}.gb.none{cursor:default}.sch-pl{font-size:.74rem;color:var(--ink-2)}@media(max-width:1439px){.sch{--frz-w: 336px}.sch .c4,.sch .c5,.sch .c6{display:none}.sch .c3{width:84px;min-width:84px}.sch-u{display:inline}}.sch tbody .c2{white-space:normal}.sch-fin{display:none;font-size:.74rem;line-height:1.1;color:var(--ink-2)}.sch-fin.late,.sch td.c6.late,.sch td.c6.late .pdate,.sch td.c6.late .pdate-ro,.sch td.c6.late input,.sch td.c6.late button{color:var(--st-issue)}@media(max-width:1439px){.sch-fin{display:block}}.sch-name button.sch-pick{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal;line-height:1.15}.sch .band{overflow:visible}.sch .band-t{position:sticky;left:calc(var(--frz-w) + 154px);display:inline-block;white-space:nowrap}.sch .w{width:auto;min-width:var(--colw);text-align:center}.sch td.w{padding:2px;position:relative}.sch .cal-sat{background:var(--cal-sat-fill)}.sch .cal-sun{background:var(--cal-sun-fill)}.sch .sub .cal-sat{background:var(--cal-sat-fill)}.sch .sub .cal-sun{background:var(--cal-sun-fill)}.sch .sch-now{background:var(--sched-now-fill)}.sch thead th.w.r3{white-space:normal;line-height:1.15}.sch td.sch-edge:not(.sch-now){opacity:.7}.sch th.sch-edge:not(.sch-now){opacity:.6}.sch .sch-edge:not(.sch-now){background-image:linear-gradient(color-mix(in srgb,var(--ink-2) 10%,transparent),color-mix(in srgb,var(--ink-2) 10%,transparent))}.sch thead .sch-now{border-bottom-color:var(--sched-now-line)}.sch .sub td,.sch .sub th{background:var(--surface-2);color:var(--ink-2)}.sch .sub .sch-now{background:var(--sched-now-fill)}.sch-name{display:flex;align-items:center;gap:4px;overflow:hidden}.sch-name button.sch-pick{background:none;border:0;padding:0;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.sch-name button.sch-pick:hover{text-decoration:underline}.sch-fold{background:none;border:0;padding:0 2px;cursor:pointer;color:var(--ink-2);font:inherit;position:relative;z-index:1}.sch-name button.sch-pick:after{content:"";position:absolute;inset:0}.sch-name button.sch-pick:focus-visible{outline:none}.sch-name button.sch-pick:focus-visible:after{outline:2px solid var(--st-progress);outline-offset:-2px}.sch-indent{padding-left:18px}.sch-cell{display:block;min-width:40px;height:26px;line-height:24px;border:1px solid transparent;border-radius:var(--r3);font:inherit;color:var(--ink);padding:0 2px}.sch-cell.plan{border-color:var(--st-planned)}.sch-cell.done{background:var(--st-done-fill);font-weight:600}button.sch-cell{cursor:pointer;width:100%}button.sch-cell:hover{border-color:var(--st-done)}.sch .bar{background:var(--st-progress-fill);border-top:3px solid var(--surface);border-bottom:3px solid var(--surface)}.sch td.gcell{position:relative;padding:0;overflow:visible}.sch td.gbar{padding:0}.gb{position:absolute;left:1px;top:50%;transform:translateY(-50%);z-index:1;display:block;height:14px;padding:0;border:1px solid var(--st-progress);border-radius:var(--r3);background:var(--st-progress-fill);cursor:pointer;font:inherit;color:var(--ink)}.gb-fill{position:absolute;left:0;top:0;bottom:0;background:var(--st-progress);border-radius:var(--r2) 0 0 var(--r2)}.gb-tick{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--ink)}.gb.late{border-color:var(--st-issue);background:var(--st-issue-fill)}.gb.late .gb-fill{background:var(--st-issue)}.gb.sum{height:6px;border-radius:0;border-width:0 2px 0 2px;border-top:0;border-bottom:0;border-style:solid;background:var(--st-planned-fill)}.gb.sum .gb-fill{border-radius:0;background:var(--st-planned)}.gb.sum.late{border-color:var(--st-issue)}.gb-label{position:absolute;top:50%;transform:translateY(-50%);z-index:2;font-size:.72rem;font-weight:700;line-height:1;white-space:nowrap;pointer-events:none}.gb-label.in{right:3px;color:var(--ink);text-shadow:0 0 2px var(--surface),0 0 2px var(--surface)}.gb-label.right{left:100%;margin-left:4px;color:var(--ink)}.gb-label.left{right:100%;margin-right:4px;color:var(--ink)}.gb.late .gb-label{color:var(--st-issue)}.gb-ms{position:absolute;top:50%;transform:translate(-50%,-50%);z-index:3;font-size:.9rem;line-height:1;color:var(--ink);text-shadow:0 0 2px var(--surface),0 0 2px var(--surface)}.gb-ms.done{color:var(--st-done)}.gb-ms.open{color:var(--ink-2)}.sch-name button.sch-pick.sum{font-weight:700}.sch-phase td{height:34px}.sch .sel th,.sch tr.sel .frz{box-shadow:inset 3px 0 0 var(--lime)}.sch-sub2{display:none}.sch .c7 .sch-c7-st{display:block;font-size:.75rem;line-height:1.15;color:var(--ink-2);white-space:normal;text-overflow:clip}.sch td.c7{line-height:1.15}.ptree-legend{margin:0 0 8px}.ptree>.card-head{flex-wrap:nowrap;align-items:center;margin-bottom:4px}.ptree>.card-head h2{margin:0;min-width:0}.ptree-toggle-all{flex:none;white-space:nowrap}.sch-legend{margin:6px 0 0}.sch-lg{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:6px 0 0;font-size:.85rem;color:var(--ink-2)}.sch-lg-chip{display:inline-flex;align-items:center;gap:5px}.sch-lg-sw{display:inline-block;width:14px;height:14px;border-radius:var(--r3);border:1px solid transparent;box-sizing:border-box}.sch-lg-sw.done{background:var(--st-done-fill)}.sch-lg-sw.plan{border:2px solid var(--st-planned)}.sch-lg-sw.now{background:var(--sched-now-fill);border-color:var(--sched-now-line)}.sch-lg-sw.sat{background:var(--cal-sat-fill);border-color:var(--line)}.sch-lg-sw.sun{background:var(--cal-sun-fill);border-color:var(--line)}.sch-lg-sw.bar{background:var(--st-progress-fill);border-color:var(--st-progress);position:relative;overflow:hidden}.sch-lg-sw.bar:after{content:"";position:absolute;left:0;top:0;bottom:0;width:55%;background:var(--st-progress)}.sch-lg-sw.tick{width:2px;height:14px;border:0;border-radius:0;background:var(--ink);margin:0 6px}.sch-lg-mark{font-weight:700;color:var(--ink)}.sch-lg-mark.late{color:var(--st-issue)}.sch-lg-help{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:var(--r-circ);width:22px;height:22px;padding:0;font:inherit;font-size:.8rem;cursor:pointer;position:relative}@media(max-width:767px){.sch-lg{flex-wrap:wrap;overflow:visible}.sch-lg-chip{white-space:nowrap;max-width:100%}.sch-lg.more-open .sch-lg-chip{white-space:normal}.sch-lg-help{flex:none;order:99}}@media(max-width:599px){.sch-lg{flex-wrap:nowrap;gap:4px 10px;min-height:40px}.sch-lg.more-open{flex-wrap:wrap}.sch-lg-chip{display:none;order:60}.sch-lg.more-open .sch-lg-chip{display:inline-flex}.sch-lg-fold{order:50;margin-right:auto;min-height:40px}.sch-lg-fold:after{content:" ▸"}.sch-lg-fold[aria-expanded=true]:after{content:" ▾"}.sch-lg-help{margin-left:4px}}.sch-lg-fold{display:none;border:0;background:none;padding:0 2px;font:inherit;color:var(--ink-2);text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer;white-space:nowrap}@media(max-width:599px){.sch-lg-fold{display:inline-flex;align-items:center}}@media(max-width:640px){.sch-lg-help:after{content:"";position:absolute;left:50%;top:50%;width:40px;height:40px;transform:translate(-50%,-50%)}}.sch-lg-note{margin:4px 0 0}.sch-zoom{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sch-monthnav{display:inline-flex;align-items:center;gap:4px;font-weight:600}.sch.edit td.w{padding-top:1px;padding-bottom:1px}.sch-plan-in{display:block;width:0;min-width:100%;height:30px;padding:0 2px;text-align:center;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r3);box-sizing:border-box}.sch-plan-in:focus{outline:2px solid var(--st-planned);outline-offset:0}.sch-plan-in.saving{opacity:.5}.sch-dot{position:absolute;z-index:1;top:1px;right:1px;width:6px;height:6px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px var(--surface);pointer-events:none}@media(max-width:700px){.sch-zoom .only-wide{display:none}}@media(max-width:700px){.sch .c1,.sch .c3,.sch .c4,.sch .c5,.sch .c6,.sch .c7{display:none}.sch{--frz-w: 132px}.sch .band-t{left:136px}.sch .c2{left:0;width:132px;min-width:132px;border-right:2px solid var(--line-strong)}.sch tbody .c2{height:auto;white-space:normal;padding:2px 4px}.sch-sub2{display:block;font-size:.78rem;color:var(--ink-2)}.sch-sub2-warn{display:block}}@media(max-width:640px){.sch th,.sch td{height:46px}.sch tbody .c2{min-height:46px}.sch-name{min-height:40px}.sch-name button.sch-pick{flex:1;min-width:0;min-height:40px;align-content:center}.sch tbody .c2 .sch-name{min-height:0;overflow:visible}.sch tbody .c2 .sch-fold{margin-top:-6px;margin-bottom:-6px}.sch tbody .c2 .sch-name button.sch-pick{min-height:0}.sch-fold{min-width:40px;min-height:40px;margin:0 -14px 0 -4px}.gb{height:18px}.gb.sum{height:6px}.gb:before{content:"";position:absolute;left:0;right:0;top:50%;height:40px;transform:translateY(-50%)}.gb-ms{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:14px}.sch{--colw: 52px}.sch-cell,.sch-plan-in{height:32px;line-height:30px}.sch-zoom .btn-sm,.sch-fullbtn,.sch-nowbtn{min-height:40px}}@media(max-width:639px){.pvb-grid-card .card-head>.sch-p1,.pvb-grid-card .card-head>.sch-p2{flex:1 1 100%;display:flex;align-items:center;gap:6px;min-width:0}.sch-p1 .pg-views-lead{flex:1 1 0;min-width:0}.sch-p1 .pvb-chip{flex:none;padding:0 10px}.sch-p2 .segmented{flex:1 1 0;min-width:0;display:flex}.sch-p2 .segmented button{flex:1 1 0;min-width:0;min-height:40px;white-space:nowrap;padding-left:6px;padding-right:6px}.sch-p2 .sch-nowbtn{flex:none;min-height:40px;min-width:40px}.sch-p2 .menu-button{flex:none}.sch-p2 .sch-morebtn{min-height:40px;min-width:40px;font-size:1.2rem;line-height:1}.sch-daynav{display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:600;line-height:1.2}.sch-daynav-b{display:flex;gap:4px}.sch-daynav-b .btn{min-height:40px;min-width:40px}.pvb-grid-card .card-head>.sch-p3{flex:1 1 100%;display:flex;justify-content:center;align-items:center;gap:6px}.pvb-grid-card .card-head>.sch-p3 .btn{min-height:40px}}.pvb-stale{opacity:.5;pointer-events:none}.app-main:has(.sch-box){max-width:none}.sch-full{position:fixed;inset:0;z-index:60;margin:0;border-radius:0;box-sizing:border-box;padding:10px;display:flex;flex-direction:column;background:var(--surface)}.sch-full .card-head{margin-bottom:8px}.sch-full .sch-zoom{flex:1}.sch-full .sch-fullbtn{margin-left:auto}.sch-full>p{display:none}.sch-full .sch-box{flex:1;max-height:none!important;min-height:0}.pvb-main.one{grid-template-columns:minmax(0,1fr)}.sch-panel{position:fixed;z-index:70;right:12px;top:12px;bottom:12px;width:340px;max-width:calc(100vw - 24px);box-sizing:border-box;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r10);box-shadow:var(--shadow)}.sch-full .sch-panel{top:12px}.sch-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.sch-panel-head h2{margin:0 0 2px;font-size:1.05rem}.sch-panel-head{flex-wrap:wrap}.sch-panel-head .sch-cell-line{flex:1 1 100%;margin:0;font-size:13px;font-weight:600;line-height:1.3}.sch-panel-body{flex:1;overflow:auto;padding:10px 12px}.sch-panel-body h3{margin:12px 0 2px}.sch-panel-fig{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 10px}.sch-panel-fig dt{color:var(--ink-2)}.sch-panel-fig dd{margin:0;text-align:right}@media(max-width:640px){.sch-panel,.sch-full .sch-panel{inset:auto 0 0;width:auto;max-width:none;height:auto;max-height:60dvh;border-radius:var(--r12) var(--r12) 0 0}.sch-panel-head .btn-sm{min-height:40px;min-width:40px}.sch-ms-empty{display:none}}.csw{display:inline-block;width:12px;height:12px;border-radius:var(--r3);vertical-align:-1px;margin-right:6px;flex:0 0 auto;border:1px solid var(--line-strong)}.csw-line{height:4px;border-radius:var(--r2);vertical-align:middle;width:16px;border:0;box-shadow:0 0 0 2px var(--route-edge)}.cr-case{fill:none}.bv-route-case{fill:none;stroke:var(--route-edge);stroke-width:6;vector-effect:non-scaling-stroke;pointer-events:none}.csw-used{flex-basis:100%;display:flex;flex-direction:column;gap:4px}.csw-used-row{display:flex;flex-wrap:wrap;gap:6px}.csw-other{flex-basis:100%;display:flex;flex-direction:column;gap:4px}.csw-other-row{display:flex;align-items:center;gap:8px}.field .csw-other-row .csw-native{flex:none;width:44px;height:32px;padding:0;border:1px solid var(--line-strong);border-radius:var(--r6);background:var(--surface);cursor:pointer}.field .csw-other-row .csw-code{flex:none;width:8rem;min-height:32px}.csw-code.bad{border-color:var(--critical)}@media(max-width:640px){.field .csw-other-row .csw-native{width:100%}.csw-pick button.csw-opt{width:calc((100% - 24px)/5);height:36px;border-radius:var(--r8);max-width:44px}.csw-other-btn,.field .csw-other-row .csw-native{min-height:44px}.csw-other-btn{width:100%}.csw-other-row{flex-wrap:wrap}.field .csw-other-row .csw-code{width:100%;min-height:44px}}.csw-btn{min-width:28px;min-height:28px;padding:0;border:0;background:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r6)}.csw-btn .csw{margin:0}.csw-btn:focus-visible,.csw-pick button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.csw-pick{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 2px}.csw-pick button.csw-opt{width:28px;height:28px;min-height:28px;padding:0;border-radius:var(--r-circ);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line-strong);cursor:pointer;color:var(--surface);font-size:.8rem;line-height:1;font-weight:700}.csw-pick button.csw-opt.on{box-shadow:0 0 0 2px var(--ink)}.csw-pick button.csw-auto{min-height:28px;padding:0 8px;font-size:.8rem;border:1px solid var(--line-strong);border-radius:var(--r14);background:var(--surface);color:var(--ink);cursor:pointer}.csw-pick button.csw-auto.on{box-shadow:0 0 0 2px var(--ink)}.kind-legend{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.8rem;color:var(--ink-2)}.kind-legend li{display:inline-flex;flex-wrap:wrap;align-items:center}.kind-legend .csw{width:14px;height:14px}.plan-pop .kind-legend{flex-direction:column}.edge-dot{display:inline-block;width:14px;height:10px;border-radius:var(--r3);border:3px solid var(--st-planned);background:transparent;box-sizing:border-box;vertical-align:-1px}.edge-dot-planned{border-color:var(--st-planned)}.edge-dot-in_progress{border-color:var(--st-progress)}.edge-dot-done{border-color:var(--st-done)}.edge-dot-issue{border-color:var(--st-issue)}.cable-l1 .csw{margin-right:6px}.planned-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ink-2);vertical-align:middle;margin-left:4px}.planned-back{display:inline-block;padding:0 4px;margin-left:4px;border:0;background:none;color:var(--accent);font-size:.75rem;cursor:pointer;text-decoration:underline}.planned-back:disabled{opacity:.5;cursor:default}.planned-back.compact{text-decoration:none;font-size:inherit;margin-left:2px}.planned-src{font-size:.72rem;color:var(--ink-3)}.kind-plan{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 8px}.kind-plan .kind-name{display:inline-flex;align-items:center;gap:6px;font-weight:600;min-width:140px}.kind-plan .chip-toggle{display:inline-flex;align-items:center;gap:4px}.kind-plan .chip-toggle input{width:4.5em;padding:1px 4px}.kind-plan .chip-x{border:0;background:none;cursor:pointer;color:var(--ink-3);padding:0 2px}.kind-plan .chip-qty{border:0;background:none;cursor:pointer;font-weight:700;color:var(--ink);padding:0;text-decoration:underline dotted}.kind-add{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.kind-add input[type=number]{width:5em}.qty-lines{margin:2px 0 0;padding:0;list-style:none}.qty-lines .muted{font-size:.72rem}@media(max-width:700px){.planned-back{display:block;min-height:44px;margin-left:0}.planned-back.compact{display:inline-block;min-height:44px;min-width:44px;margin-left:2px;padding:0 6px;vertical-align:middle}.kind-plan .chip-toggle,.kind-add .btn{min-height:44px}}.row-kinds td{padding-top:0;border-top:0}.sch .hol-dot{color:var(--hol-dot);font-size:.6rem;margin-left:2px;vertical-align:super}.sch-holhint{margin:0 0 6px}.hol-top{align-items:flex-end;gap:12px;flex-wrap:wrap}.hol-year{display:inline-flex;align-items:center;gap:8px}.country-select{display:inline-flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.hol-table input{width:100%;min-width:8em}.hol-cell{background:none;border:0;padding:2px 4px;font:inherit;color:inherit;cursor:text;text-align:left;border-bottom:1px dashed var(--line)}@media(max-width:640px){.hol-cell{min-height:40px;min-width:40px;display:inline-flex;align-items:center}}.hol-paste{width:100%;font-family:inherit}.cable-form .cable-cables{width:100%}.cable-chips{display:flex;flex-wrap:wrap;gap:4px;margin:2px 0 6px}.cable-chip{border:1px solid var(--line);border-radius:var(--r10);padding:1px 8px;font-size:.75rem}.warn-line{color:var(--warn-text);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r6);padding:6px 8px;margin:4px 0}.hol-get{align-items:center;gap:12px;flex-wrap:wrap}.hol-also{display:inline-flex;align-items:center;gap:6px}.hol-pick .hol-tick{width:44px;text-align:center}.hol-pick .hol-tick input{width:20px;height:20px;min-width:0}.hol-pick .hol-yr th{text-align:left;background:var(--surface-2)}.hol-pick .hol-kept td{color:var(--ink-2)}.hol-tag{color:var(--ink-2);font-size:.8em}@media(max-width:600px){.hol-get .btn,.hol-addbtn{width:100%}.hol-pick td{padding-top:10px;padding-bottom:10px}}.bv-hp{cursor:pointer}.bv-hp-hit{fill:none;stroke:transparent;stroke-width:10;vector-effect:non-scaling-stroke;pointer-events:stroke}.bv-hp .bv-route{stroke-width:2.5}.bv-hp .bv-route-case{stroke-width:6.5}.bv-dim{opacity:var(--fade-line)}.bv-names-layer{pointer-events:none}.bv-names-layer .rn-text,.bv-names-layer .rn-leader,.bv-names-layer .rn-dot,.bv-names-layer .rn-frame{vector-effect:non-scaling-stroke}.del-room-list{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow-y:auto}.del-room-btn{min-height:44px;justify-content:flex-start;text-align:left}:root{--fade-item: .2;--fade-line: .25;--fade-drawing: .35}.plan-map .leaflet-image-layer{transition:opacity .15s}.plan-map.plan-faint .leaflet-image-layer{opacity:var(--fade-drawing)!important}.plan-map.plan-nofloors .leaflet-image-layer{visibility:hidden}.plan-map path.plan-frame{fill:none;stroke:var(--line-strong);stroke-width:1}.plan-map.plan-nofloors path.plan-frame{fill:var(--surface);fill-opacity:1}.bv-plate-off{fill:none;pointer-events:all}.bv-plan-img.bv-faint{opacity:var(--fade-drawing)}.bv-fade{opacity:var(--fade-line);pointer-events:none}.bv-hp .bv-hp-hit{pointer-events:none}.bv-hit-top .bv-hp-hit{pointer-events:stroke}.bv-hit-top .bv-fade .bv-hp-hit,.bv-fade .bv-hp-hit{pointer-events:none}.bv-fade-plate{opacity:var(--fade-item)}.bv-fade-plate .bv-room.bv-fade-item{opacity:1}.bv-room.bv-fade-item{opacity:var(--fade-item)}.show-chip{min-height:44px}.show-pop{min-width:220px;padding:4px 8px}.show-pop.show-up{top:auto;bottom:calc(100% + 6px)}.show-row{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.show-row input[type=checkbox]{width:22px;height:22px;margin:0;accent-color:var(--accent)}.show-sub{padding-left:28px}.show-row-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.show-close{display:none}.show-switch{cursor:default;flex-wrap:wrap}.show-switch>span{margin-right:auto}.show-opt{min-height:44px}.show-opt[aria-checked=true]{border-color:var(--accent);background:var(--lime-soft)}.show-fam{display:flex;flex-wrap:wrap;gap:6px;padding:2px 0 6px 28px}.show-fam-chip{min-height:32px}.show-fam-chip[aria-pressed=true]{border-color:var(--accent);background:var(--lime-soft)}.show-hint{margin:0 0 6px;font-size:.82rem}.show-dock .plan-legend{margin:4px 0 6px 28px}.show-dock .show-route.hover,.show-pop.show-up .show-route.hover{background:var(--surface-2)}.show-dock{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.bv-side .show-dock{flex:none}.show-dock>*{flex:none}.show-dock .show-routes{max-height:none;flex:none;min-height:0;overflow:visible}.show-dock .show-switch{margin-top:8px;background:var(--surface);position:sticky;bottom:0}.bv-side .show-dock .show-switch{position:static}.plan-side>.bv-legend{flex:none;background:var(--surface)}@media(max-height:799px){.plan-side>.bv-legend{padding:6px 0 2px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:0 14px}.plan-side>.bv-legend .kind-legend{margin:0;gap:2px 10px;font-size:.75rem}.plan-side>.bv-legend .kind-legend .csw{width:12px;height:12px}}.plan-side .show-dock{flex:0 1 auto;min-height:0}.plan-side .show-dock .show-routes{flex:1 1 auto;min-height:92px;overflow-y:auto}.plan-side .show-dock .show-switch{position:static}.show-tick-hint{margin:0 0 2px 28px}.show-dock .show-tick-hint{min-height:40px;display:flex;align-items:center;gap:8px}.show-focus-line{margin:0 0 2px 28px;font-size:12px;color:var(--ink-2)}.show-focus-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.show-focus-line .btn{flex:none;min-height:40px}@media(max-height:800px){.bv-side .show-dock .show-routes{flex:none;min-height:0;overflow:visible}}.bv-side>*{flex:none}.bv-side .show-dock .show-route{min-height:30px}.bv-side .show-dock .show-route-name{min-height:30px;padding-top:2px;padding-bottom:2px}@media(max-width:640px){.show-fam-chip,.cable-hidden .link-btn{min-height:40px}}.focus-chip .btn{min-height:44px}.plan-layout>.plan-focus.focus-chip,.plan-layout .plan-focus.focus-chip{position:static;flex:none;margin:0 0 6px}.cable-tick{flex:none;width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer}.cable-tick input{width:22px;height:22px;margin:0;accent-color:var(--accent)}.bv .focus-chip{position:static;width:fit-content;margin:6px 0}@media(max-width:640px){.show-pop{position:fixed;inset:auto 0 0;max-width:none;max-height:40dvh;overflow-y:auto;border-radius:var(--r12) var(--r12) 0 0;z-index:1200;padding:8px 16px}.show-pop.show-up{bottom:0}.show-close{display:flex;align-items:center;justify-content:center;position:sticky;top:0;float:right;width:44px;height:44px;margin:0 -8px 0 8px;padding:0;border:0;border-radius:var(--r8);background:var(--surface-2);color:var(--ink);font-size:18px;cursor:pointer;z-index:1}.bv-main>.focus-chip{order:-1}}.pstrip{display:flex;flex-wrap:wrap;gap:6px 20px;align-items:center;justify-content:space-between;padding:8px 14px;min-height:64px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);font-size:1rem;color:var(--ink-2)}.pstrip-wrap{display:flex;flex-direction:column;gap:4px}.pstrip-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;min-width:0}.pstrip-done{font-size:1.75rem;font-weight:700;color:var(--ink);line-height:1.2}.pstrip-planned{font-size:1rem}.pstrip-badge{font-size:.95rem;font-weight:600;padding:3px 10px;white-space:normal}.pstrip-late{color:var(--warn-text);font-weight:600}.pstrip-ok{color:var(--good-ink)}.pstrip-plain{color:var(--ink-2)}.pstrip-missing{background:none;border:0;padding:2px 4px;color:var(--ink-2);font:inherit;cursor:pointer;text-align:left;min-height:40px}.pstrip-missing:hover{color:var(--ink)}.pstrip-list{margin:0;padding:6px 0 0;list-style:none;flex-basis:100%;border-top:1px solid var(--line);font-size:.92rem;color:var(--ink-2)}.pstrip-list li+li{margin-top:4px}.pstrip-lbl{color:var(--ink-2)}.pstrip-lbl.pstrip-late{color:var(--warn-text);font-weight:600}.pstrip-lbl.pstrip-ok{color:var(--good-ink)}.pstrip-date{color:var(--ink);font-weight:600}.pstrip-pill{min-height:40px;padding:0 14px;background:none;border:1px solid var(--line);border-radius:var(--r-pill);color:var(--ink-2);font:inherit;cursor:pointer}.pstrip-pill:hover{color:var(--ink)}.pstrip-box[role=alert]{min-height:64px}.pstrip-box:has(>.pstrip-skels){min-height:96px}.pstrip-skels{display:flex;flex-direction:column;gap:8px;max-width:100%}.pstrip-skel{display:block;width:9rem;height:1.75rem;border-radius:var(--radius);background:var(--line)}.pstrip-skel-2{width:14rem;max-width:100%;height:1rem}.pstrip-setup{min-height:40px}@media(max-width:599px){.pstrip-gap{display:none}.pstrip.pstrip-box .pstrip-main{gap:2px 8px}.pstrip.pstrip-box .pstrip-main .pstrip-badge{padding:2px 8px}}@media(max-width:640px){.pstrip{flex-direction:column;align-items:stretch;gap:4px;font-size:.95rem}.pstrip-box:has(>.pstrip-skels){min-height:130px}.pstrip-missing{text-align:left;padding-left:0;padding-right:0}}@media(max-width:640px){.pg-views{flex-wrap:nowrap}.pg-views .segmented{min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:none}.pg-views .segmented::-webkit-scrollbar{display:none}.pg-views .segmented button{flex:none;white-space:nowrap}.pg-views .menu-button{flex:none}.sch-zoom{flex-wrap:nowrap;width:100%;min-width:0;min-height:40px;overflow-x:auto;scrollbar-width:none}.sch-zoom::-webkit-scrollbar{display:none}.sch-zoom .segmented{flex:none;display:flex}.sch-zoom .segmented button{flex:none;white-space:nowrap}.sch-zoom>.btn,.sch-zoom>.sch-monthnav{flex:none;white-space:nowrap}}.pvb-warn-always{padding-top:0;padding-bottom:0}.pvb-warn-always .pvb-warn-head{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:40px;padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer}.pvb-warn-always:not(.open) ul,.pvb-warn-always:not(.open) .pvb-tellpm{display:none}.pvb-warn-always.open{padding-bottom:10px}.pvb-grid-card .card-head>.pvb-head-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.pvb-chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid var(--warn-line);border-radius:var(--r-pill);background:var(--warn-bg);color:var(--warn-ink);font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap}.pvb-chip.open{border-color:var(--warn-ink)}.pvb-warn-list{margin-bottom:8px;font-size:.92rem}.pvb-warn-list ul{margin:0;padding-left:18px}.pvb-warn-list li{padding:3px 0}.pvb-warn-list .pvb-tellpm{margin:6px 0 0}.sch-full .pvb-warn-list{display:none}.tabs .tab{white-space:nowrap}@media(max-width:640px){.text-dialog input{min-height:44px;font-size:16px}.text-dialog .add-foot .btn{min-height:44px}}.pvb-warn-head{display:none}@media(max-width:640px){.pvb-warn-wide{display:none}.pvb-warn-head{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:40px;padding:0;border:0;background:none;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer}.pvb-warn{padding-top:0;padding-bottom:0}.pvb-warn:not(.open) ul,.pvb-warn:not(.open) .pvb-tellpm{display:none}.pvb-warn.open{padding-bottom:10px}.progress-tab .btn-xs,.progress-tab .btn-sm,.progress-tab .chip-toggle,.progress-tab .segmented button,.progress-tab .sch-fullbtn,.progress-tab .menu-button .btn{min-height:40px;min-width:40px}.progress-tab .btn-xs{margin:3px 3px 3px 0}.progress-tab .pg-views,.progress-tab .sch-zoom{gap:6px}.progress-tab .pvb-warn li{padding:3px 0}}@media(max-width:640px){.project-page .ov-tab .btn-sm,.project-page .report-board .btn,.project-page .report-board .btn-sm,.project-page .ms-view .btn-sm,.project-page .ms-view .btn-xs,.project-page .tabs-row .tab,.project-page .tabs-row .tab-more{min-height:40px;min-width:40px}.project-page .report-board .board-day .link-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:40px;padding:0 6px}.project-page .report-board .toolbar,.project-page .ov-tab .toolbar,.project-page .ms-view .toolbar{gap:6px}.project-page .ms-view .btn-xs{margin:3px 3px 3px 0}}.plan-hist{min-width:32px;padding:0 8px;font-size:1rem;line-height:1}.plan-hist:disabled{opacity:.45;cursor:not-allowed}@media(max-width:600px){.plan-hist{min-width:40px;min-height:40px}}@media(max-width:640px){.page-head .btn,.card-head .btn,.card .btn-xs,.card .btn-sm,.member .btn,.site-send-error .btn{min-height:40px;min-width:40px}.card td .btn-xs,.card td .btn-sm{margin:3px 3px 3px 0}.segmented button,.chip-toggle,.sselect-btn,.menu-item,.map-menu-item,.plan-switch .btn,.map-home-btn,.map-add-btn,.map-legend-head,.speech .btn{min-height:40px}.map-legend-head,.map-home-btn,.map-add-btn{min-width:40px}.plan-switch .btn{min-width:44px}.chip-toggle{display:inline-flex;align-items:center}.menu-item,.map-menu-item{display:flex;align-items:center}.project-page details>summary{min-height:40px;padding-block:10px;box-sizing:border-box}.nearby-row,.card.stack .btn{min-height:40px}.member{min-height:40px;align-items:center}.project-page .toolbar .btn,.project-page .toolbar select{min-height:40px;min-width:40px}}.show-routes{list-style:none;margin:0 0 0 28px;padding:0}.show-route-fold{list-style:none}.show-fold-btn{min-height:44px;width:100%;text-align:left;background:none;border:0;color:var(--ink);font:inherit;padding:6px 10px;cursor:pointer}.show-fold-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.show-route{display:flex;align-items:center;gap:8px;min-height:36px;border:1px solid transparent;border-radius:var(--r7);padding:0 6px}.show-route.hover{border-color:var(--ink);background:var(--surface-2);box-shadow:inset 3px 0 0 var(--ink)}.show-route-name{flex:1;min-width:0;min-height:44px;display:flex;align-items:center;gap:8px;text-align:left;background:none;border:0;border-left:4px solid transparent;border-radius:var(--r4);color:var(--ink);font:inherit;padding:6px 4px;cursor:pointer}.show-route-name[aria-pressed=true]{border-left-color:var(--accent);background:var(--lime-soft);font-weight:600}.show-route-name:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.show-route-line{flex:none}.show-route-case{stroke:var(--route-edge);stroke-width:7;stroke-linecap:butt}.show-route-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){:is(input[type=date],input[type=text],input[type=search],input[type=time],input[type=number],input:not([type]),select):not(:is(table *,.sch-box *,.sch-cell *,.leaflet-container *,.plan-tools *,.plan-pop *,.bv-tools *)){min-height:40px}}@media(min-width:768px){.sch-panel{top:64px}}.inside-top.plan-top .crumbs{flex:0 1 auto}.plan-size-slot{flex:1 1 0;min-width:0}.plan-tool-slot,.inside-end{display:flex;align-items:center;gap:8px;flex:none}@media(min-width:768px){.plan-tool-slot,.inside-end{min-width:74px}}.plan-tool-slot .btn,.plan-tool-slot .menu-button>.btn{min-height:40px}.plan-layout.plan-hdr:has(.plan-surface){height:calc(100dvh - 276px);min-height:440px}@media(max-width:767px){.plan-size-slot,.plan-tool-slot,.plan-hist-slot{display:none}.plan-bar{flex-wrap:nowrap;gap:4px}.plan-bar .btn,.plan-bar .menu-button>.btn{min-height:40px;padding-inline:4px;font-size:.75rem;flex:1 1 auto;white-space:nowrap}.plan-bar .menu-button>.btn,.plan-bar .btn[aria-pressed]{min-width:40px;flex:none}.plan-bar .menu-button{flex:none}.inside-top.plan-top{flex-wrap:nowrap}.inside-top.plan-top .crumbs{flex:1 1 0;min-width:0;overflow:hidden;white-space:nowrap;flex-wrap:nowrap}.inside-top.plan-top .crumb:last-child{flex:0 1 auto;min-width:48px;max-width:none}.inside-top.plan-top .crumb:last-child>b{overflow:hidden;flex:0 1 auto}.inside-top.plan-top .crumbs{white-space:normal}.inside-top.plan-top .crumb.first-near:not(:last-child){flex:0 1 auto;min-width:0}.inside-top.plan-top .crumbs.squeezed .crumb.first-near:not(:last-child),.inside-top.plan-top .crumbs.squeezed .crumb:last-child .crumb-sep{display:none}}@media(max-width:479px){.inside-top,.inside-top.plan-top{flex-wrap:wrap}.inside-top .crumbs,.inside-top.plan-top .crumbs{flex:1 1 100%;flex-wrap:nowrap;overflow:hidden}.inside-top .crumb:not(:last-child){flex:0 1 auto;max-width:55%}.inside-top .crumb>.link-btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inside-top .inside-add,.inside-top .inside-more{min-height:40px}}@media(max-width:640px){.project-page .project-head{margin-bottom:6px;gap:4px 10px}.project-page .tabs-row{margin-bottom:10px}.progress-tab.stack>*+*,.progress-tab .pvb.stack>*+*{margin-top:8px}.progress-tab .pstrip{padding:6px 12px;min-height:0;gap:2px}.progress-tab .pstrip-row{gap:2px 10px}.progress-tab .pstrip-done{font-size:1.4rem;line-height:1.15}.progress-tab .pstrip-planned{font-size:.95rem}.progress-tab .pstrip-badge{font-size:.88rem;padding:2px 8px}.progress-tab .pvb-grid-card{padding:8px 12px 12px}.progress-tab .pvb-grid-card .card-head{gap:6px;margin-bottom:6px}.progress-tab .pvb-grid-card .card-head h2{font-size:1rem;line-height:1.25;margin:0}}@media(max-width:800px){.toast .toast-action{min-height:40px;padding:4px 14px}}@media(max-width:600px){.toast .toast-action{min-height:44px}}.plan-map.leaflet-container .leaflet-bar a{width:40px;height:40px;line-height:40px;background:var(--surface);color:var(--ink);border-bottom-color:var(--line-strong)}.plan-map.leaflet-container .leaflet-bar a:hover{background:var(--surface-2)}.plan-map.leaflet-container .leaflet-bar{border-color:var(--line-strong);box-shadow:var(--shadow)}.plan-map.leaflet-container .leaflet-control-zoom-fit{font-size:1.15rem;text-decoration:none;text-align:center;display:block}.plan-tools{left:62px;max-width:calc(100% - 72px)}.plan-bar-hist{display:inline-flex;gap:4px;flex:none}.plan-bar-hist .plan-hist{min-height:32px;box-shadow:none;border-radius:var(--r8)}@media(max-width:767px){.plan-bar-hist .plan-hist{min-width:40px;min-height:40px}}.plan-todo-wrap{position:absolute;right:10px;bottom:10px;z-index:1100}.plan-todo-wrap .plan-pop{top:auto;bottom:calc(100% + 6px);left:auto;right:0}@media(max-width:640px){.plan-todo-wrap{bottom:46px}}@media(max-width:640px){.plan-surface[data-card] .plan-todo-wrap{display:none}}@media(max-width:600px){.plan-map.leaflet-container .leaflet-top.leaflet-left{top:50%;transform:translateY(-50%)}.plan-map.leaflet-container .leaflet-bar a{width:44px;height:44px;line-height:44px}.plan-surface[data-card] .plan-map.leaflet-container .leaflet-top.leaflet-left{top:0;transform:none}}@media(min-width:601px)and (max-width:1279px){.plan-layout.plan-hdr:has(.plan-surface):not(.plan-full){height:calc(100dvh - 316px)}}.plan-strip-key{flex:none;margin:2px 0 0;padding:0 4px;font-size:.75rem;line-height:1.2;white-space:nowrap}.plan-key{display:none}@media(max-width:640px){.plan-key{display:block}.plan-key-btn{min-height:40px;padding:0 4px;background:none;border:0;color:var(--ink-2);font:inherit;font-size:.9rem;cursor:pointer}.plan-key-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.plan-key .bv-legend{padding:2px 4px 6px}}@media(max-width:520px){.plan-strip-key{align-self:center}}@media(max-width:767px){.plan-strip-key{display:none}}.plan-chip-dock{display:none}@media(max-width:767px){.plan-map.leaflet-container .leaflet-control-zoom-in,.plan-map.leaflet-container .leaflet-control-zoom-out{display:none}.plan-map.leaflet-container .leaflet-top.leaflet-left,.plan-surface[data-card] .plan-map.leaflet-container .leaflet-top.leaflet-left{left:auto;right:0;top:10px;transform:none}.plan-map.leaflet-container .leaflet-left .leaflet-control{margin-left:0;margin-right:10px;margin-top:0}.plan-map.leaflet-container .leaflet-bar a{width:40px;height:40px;line-height:40px;border-radius:var(--r4);border-bottom:0}.plan-tools{left:10px;max-width:calc(100% - 70px)}.plan-place-bar{flex-wrap:wrap;align-items:center}.plan-place-hint{order:-1;flex:1 1 100%;min-width:0;min-height:2.6em;line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.plan-todo-list li{min-height:44px}.plan-todo-list .btn{min-height:40px}.plan-chip{display:none}.plan-chip-dock{display:flex;flex:none;position:static;flex-wrap:wrap;align-items:center;gap:4px 8px;min-height:40px;margin:6px 0 0;padding:0 10px;border-radius:var(--r8);background:var(--warn-bg);color:var(--warn-ink);border:1px solid var(--warn-line)}.plan-chip-dock .btn{min-height:40px}}@media(min-width:1024px){.plan-side .show-ticks{display:flex;flex-wrap:wrap;column-gap:14px}.plan-side .show-ticks .show-row{min-height:32px}.plan-side .show-ticks .show-sub{padding-left:0}.plan-side .show-dock{flex:1 1 auto}.plan-side .show-dock .show-routes{flex:1}}.show-ticks{display:contents}.sselect-list:focus-visible .sselect-opt[data-active=true]{outline:2px solid var(--accent);outline-offset:-2px}@media(max-width:767px){.plan-layout:not(.plan-full) .plan-surface{flex:none;height:min(max(60dvh,calc(100dvh - 190px)),max(320px,var(--plan-fit-h, 9999px)));min-height:0}.plan-layout:not(.plan-full):has(.plan-chip-dock) .plan-surface{height:min(max(60dvh,calc(100dvh - 238px)),max(320px,var(--plan-fit-h, 9999px)))}}@media(max-width:600px){.plan-layout:not(.plan-full) .plan-surface[data-card]{height:max(60dvh,calc(100dvh - 190px))}.plan-layout:not(.plan-full):has(.plan-chip-dock) .plan-surface[data-card]{height:max(60dvh,calc(100dvh - 238px))}.plan-surface[data-card] .plan-float{max-height:55%}}.inside-tip{position:fixed;z-index:1200;pointer-events:none;padding:5px 8px;border-radius:var(--r6);border:1px solid #cfd3ca;background:#fff;color:#101410;box-shadow:0 1px 4px #0000002e;font:500 12px IBM Plex Sans,IBM Plex Sans Thai,sans-serif}.ptree-table .ptree-bar{min-width:120px;width:28%}.ptree-table td,.ptree-table th{vertical-align:middle}.ptree-name{min-width:200px}.ptree-namebox{display:flex;align-items:center;gap:6px}.ptree-title{overflow-wrap:anywhere}.ptree-sub{white-space:nowrap}.ptree-fold{width:26px;height:26px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:inherit;cursor:pointer;border-radius:var(--r6);font-size:14px}.ptree-fold:hover{background:color-mix(in srgb,currentColor 12%,transparent)}.ptree-fold-none{cursor:default}.ptree-phase>td{background:color-mix(in srgb,currentColor 6%,transparent);font-weight:600}.ptree-total>td{border-bottom:2px solid var(--line, currentColor)}.ptree-total .ptree-title{font-size:.88rem;color:var(--ink-2)}.ptree-place td,.ptree-task td{font-size:13px}.ptree-fig,.ptree-last{white-space:nowrap}@media(max-width:600px){.ptree-table .ptree-bar{min-width:70px}.ptree-fold{width:40px;height:40px}}.ptree-plan{width:5.5em}@media(max-width:640px){.ptree-table,.ptree-table tbody{display:block;width:100%}.ptree-table thead{display:none}.ptree-table .ptree-row{display:grid;grid-template-columns:40px auto auto minmax(64px,1fr) auto;column-gap:4px;row-gap:0;align-items:center;padding:6px 8px 6px calc(4px + var(--ptree-lvl, 0) * 14px);border-bottom:1px solid var(--line, currentColor)}.ptree-table .ptree-row>td{display:block;padding:0;border:0;background:none;min-width:0}.ptree-phase{background:color-mix(in srgb,currentColor 6%,transparent)}.ptree-phase>td{background:none}.ptree-table .ptree-row>td.ptree-name,.ptree-table .ptree-row>td.ptree-name>.ptree-namebox{display:contents;padding:0;min-width:0}.ptree-fold{grid-row:1 / span 2;grid-column:1;width:40px;height:40px}.ptree-title{grid-row:1;grid-column:2 / -1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere;-webkit-box-pack:center}.ptree-fig{grid-row:2;grid-column:2;white-space:normal}.ptree-table .ptree-row>td.pf-fig{text-align:start}.ptree-fig:empty{display:none!important}.ptree-fig:has(.ptree-noscope){grid-column:2 / -1;text-align:start;white-space:normal}.ptree-noscope{display:flex;flex-wrap:wrap;align-items:center;column-gap:8px}.ptree-table .ptree-row:has(.ptree-noscope)>td.ptree-bar{grid-row:3;grid-column:2 / 5}.ptree-table .ptree-row:has(.ptree-noscope)>td.ptree-act{grid-row:3;grid-column:5}.ptree-setscope{min-height:40px;padding-inline:4px}.ptree-sub{grid-row:2;grid-column:3}.ptree-table .ptree-row>td.ptree-bar{grid-row:2;grid-column:4;width:auto;min-width:64px}.ptree-table .ptree-row>td.ptree-bar:empty{display:none}.ptree-table .ptree-row>td.ptree-act{grid-row:2;grid-column:5;text-align:end;font-weight:700}.ptree-table .ptree-row>td.ptree-act:empty{display:none}.ptree-behind>td.ptree-act{color:var(--bad-ink)}.ptree-r87>td.ptree-act{color:var(--warn-text)}.ptree-slight>td.ptree-act{color:var(--warn-text)}.ptree-ahead>td.ptree-act{color:var(--good-ink)}.ptree-table .ptree-row>td:nth-child(5){display:none}.ptree-table .ptree-row>td.ptree-last{grid-row:3;grid-column:2 / -1}.ptree-last>:not(.btn){display:none}.ptree-table .ptree-row>td.ptree-last:not(:has(.btn)){display:none}.ptree-table .ptree-row>td[colspan]{grid-column:1 / -1;padding-block:4px}.ptree-plan{width:5em}}.room-size-row{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.room-size-row .num-input{width:6em}.room-look-fold{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:4px 10px;border:1px solid var(--line-strong);border-radius:var(--r8);background:var(--surface-2);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.room-look-fold:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.room-look-body{display:flex;flex-direction:column;gap:10px;margin-top:10px}.room-opacity-row .inline-field span{white-space:nowrap}.csw-pick button.csw-opt.csw-more{background:var(--surface-2);color:var(--ink)}.room-opacity-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}.room-look-preview{width:36px;height:22px;border-radius:var(--r4);border:1px solid var(--line-strong, currentColor);flex:none}.copy-plan-list{display:grid;gap:4px;max-height:40vh;overflow:auto}.plan-obj{stroke:var(--ink, #222)}.plan-obj-planned{stroke:var(--st-planned, #888);stroke-dasharray:4 3}.plan-obj-installed{stroke:var(--st-done, #3a8a2a);stroke-dasharray:none}.plan-obj-issue{stroke:var(--st-issue, #c0392b);stroke-dasharray:none}.plan-obj-sel{stroke:var(--accent, #bde33a);stroke-width:3px;stroke-dasharray:none}.plan-obj-stripe{stroke:var(--ink, #222);opacity:.55}.plan-obj-hit{cursor:grab}.plan-placing-object,.plan-placing-object .leaflet-interactive{cursor:crosshair}.plan-obj-tool{display:inline-flex;align-items:center;gap:8px;padding:2px 8px;border-radius:var(--r16);border:1px solid var(--line-strong, currentColor);font-size:.85rem}.plan-obj-count{padding:0 6px;align-self:center}.plan-float.obj-float-low{top:auto;bottom:8px;max-height:45%}@media(max-width:600px){.plan-float.obj-float,.plan-float.obj-float-low{inset:auto 0 0;width:auto}}.obj-card .inline-field{display:flex;align-items:center;gap:8px;margin-top:6px}.obj-card .inline-field>span:first-child{min-width:4.5em}.obj-card select,.obj-card textarea,.obj-card .inline-field input{flex:1;min-width:0}.obj-size,.obj-turn{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}.obj-size .num-input,.obj-turn .num-input{width:5em}.obj-pad{display:grid;grid-template-columns:repeat(3,44px);grid-template-areas:". up ." "left down right";gap:4px;margin-top:8px;justify-content:start}.obj-pad-up{grid-area:up}.obj-pad-down{grid-area:down}.obj-pad-left{grid-area:left}.obj-pad-right{grid-area:right}.obj-pad .btn{min-height:40px;touch-action:none}.obj-status{margin-top:8px}.obj-kind{border:1px solid var(--line, #ccc);border-radius:var(--radius, var(--r8));padding:8px;margin:0}.obj-kind-head{display:grid;grid-template-columns:40px 1fr 1fr auto;gap:8px;align-items:center}.obj-kind-row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:8px 0}.obj-preview{color:var(--ink, #222)}.obj-error{position:absolute;left:8px;bottom:8px;z-index:910;margin:0}.inside-top .plan-switch .btn{min-height:40px}.inside-top .inside-end .btn,.inside-top .plan-tool-slot .menu-button>.btn{min-height:40px;min-width:40px}.inside-top .plan-hist{min-width:40px;min-height:40px}.plan-switch .lbl-short{display:none}.menu-item-check{display:flex;align-items:center;gap:8px}.menu-tick{display:inline-block;width:1em;text-align:center;flex:none}.menu-label{display:flex;flex-direction:column}.menu-sub{font-size:.78rem;color:var(--ink-3);font-weight:400}.plan-bar:empty{display:none}.plan-map.leaflet-container .leaflet-control-zoom-full{display:none}@media(max-width:767px){.inside .inside-top,.inside .inside-top.plan-top{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"crumb hist more" "sw add add";gap:6px;align-items:center}.inside .inside-top .crumbs,.inside .inside-top.plan-top .crumbs{grid-area:crumb;min-width:0;flex-wrap:nowrap;overflow:hidden}.inside .inside-top .floors-hist{grid-area:hist}.inside .inside-top .plan-size-slot{display:none}.inside .inside-top .inside-end,.inside .inside-top .plan-tool-slot{grid-area:more;display:flex;min-width:0;justify-self:end}.inside .inside-top .plan-tool-slot{display:flex}.inside .inside-top .plan-hist-slot{display:inline-flex}.inside .inside-top .plan-switch{grid-area:sw;display:flex;min-width:0}.inside .inside-top .plan-switch .btn{flex:1 1 0;min-width:82px;justify-content:center;white-space:nowrap}.inside .inside-top:not(:has(>.menu-button)) .plan-switch{grid-column:1 / -1}.inside .inside-top>.menu-button{grid-area:add;justify-self:end}.inside .inside-top .inside-add{width:84px;min-width:84px;justify-content:center}.inside .inside-top .inside-add .menu-caret,.plan-switch .lbl-long{display:none}.plan-switch .lbl-short{display:inline}.inside-top .crumb:not(:last-child){max-width:55%}.inside-top .crumb>b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-map.leaflet-container .leaflet-control-zoom-full{display:block;width:40px;height:40px;line-height:40px;font-size:1.15rem;text-align:center;text-decoration:none}.plan-strip-box,.plan-strip{max-width:100%;min-width:0}}.crumb>.menu-button{display:none}@media(max-width:767px){.crumb.has-floor-menu>.menu-button{display:block;min-width:0}.crumb.has-floor-menu .crumb-floor-btn{display:block;max-width:100%;min-height:40px;padding:0 8px;line-height:38px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb.has-floor-menu>.crumb-plain{display:none}.inside .inside-top.plan-top .crumbs{overflow:visible}.menu-pop.floor-pick{left:0;right:auto;min-width:200px;max-height:60vh;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.menu-pop.floor-pick .menu-item{min-height:44px;display:flex;align-items:center;gap:8px}.menu-pop.floor-pick .floor-pick-name{white-space:normal;overflow-wrap:anywhere}.menu-heading{position:sticky;top:0;background:var(--surface);padding:6px 10px 4px;font-size:.8rem;font-weight:700;color:var(--ink-3)}.plan-layout:not(.plan-full) .plan-strip-box{display:none}}.plan-obj-hint{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:905;padding:4px 12px;border-radius:var(--r16);background:var(--surface);color:var(--ink);border:1px solid var(--line-strong, currentColor);box-shadow:var(--shadow);font-size:.85rem;pointer-events:none;max-width:calc(100% - 140px);text-align:center}.ms-today{color:var(--ink-2);border-color:var(--line)}.ms-today{white-space:nowrap;min-height:40px}@media(max-width:640px){.ms-today{min-height:44px}}.ms-today:hover:not(:disabled){border-color:var(--line-strong);color:var(--ink)}.plan-help{color:var(--ink-3);font-size:.8rem}.plan-help summary{cursor:pointer;list-style:none}.plan-help summary::-webkit-details-marker{display:none}.plan-help-link{color:var(--ink-2);text-decoration:underline dotted;text-underline-offset:3px;white-space:nowrap}.plan-help-link:before{content:"▸ "}.plan-help[open] .plan-help-link:before{content:"▾ "}.plan-help-phone,.plan-help-phone-body{display:none}@media(max-width:640px){.plan-help-line,.plan-help-link,.plan-help[open] .plan-help-line{display:none}.plan-help summary{display:flex;align-items:center;min-height:40px}.plan-help-phone,.plan-help[open] .plan-help-phone-body{display:block}}.plan-help summary:focus-visible{outline:2px solid var(--line-strong);outline-offset:2px;border-radius:var(--r4)}.plan-help p{margin:6px 0 0;max-width:90ch}.route-width{display:flex;align-items:center;gap:6px;margin:6px 0}.route-width input[type=range]{flex:1;min-width:80px}.builder-stops{list-style:none;margin:8px 0;padding:0;display:grid;gap:6px}.builder-stops li{display:grid;grid-template-columns:24px 1fr auto auto auto;gap:6px;align-items:center}.builder-n{text-align:center;color:var(--ink-2)}.builder-legs ul{margin:4px 0 0;padding-left:18px}.plan-export-row{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}.plan-export-preview{border:1px solid var(--line, #ccc);border-radius:var(--radius, var(--r8));background:#fff;padding:6px;max-height:55vh;overflow:auto}.plan-export-preview svg{display:block;width:100%;height:auto}.menu-pop .menu-phone-only{display:none}@media(max-width:600px){.plan-bar .plan-obj-add{display:none}.menu-pop .menu-phone-only{display:block}}@media(min-width:768px){.inside-top.plan-top .crumbs{flex-wrap:nowrap;overflow:hidden;height:40px;white-space:nowrap}.inside-top.plan-top .crumb{flex:0 1 auto;min-width:0}.inside-top.plan-top .crumb>b,.inside-top.plan-top .crumb>.link-btn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-width:599px){.sch-zoom{flex-wrap:wrap;overflow:visible}.sch-zoom .segmented{flex:1 1 100%}.sch-zoom .segmented button{flex:1 1 0;min-height:40px}.sch-zoom>.btn{flex:1 1 0;min-height:40px}.sch-fullbtn{display:none}}.pvb-grid-card .card-head>.pg-views{display:flex;align-items:center;gap:8px}@media(max-width:640px){.pvb-grid-card .card-head{flex-wrap:wrap}.pvb-grid-card .card-head>.pg-views-lead{flex:1 1 100%;min-width:0}}.pvb-grid-card .card-head{flex-wrap:wrap}.pvb-grid-card .card-head>.spacer{display:none}.sch-right{display:flex;align-items:center;gap:6px;margin-left:auto}.sch-full .card-head>:not(.sch-zoom):not(.sch-right){display:none}.sch-full .sch-right>:not(.sch-fullbtn){display:none}.sch-full .sch-right{display:flex;margin-left:auto}.sch-full .sch-fullbtn{display:inline-flex;align-items:center;min-height:40px;min-width:40px}@media(max-width:599px){.pvb-grid-card .card-head{gap:6px}.pvb-grid-card .card-head>.pg-views-lead{flex:1 1 0;min-width:0}.sch-right,.sch-zoom{display:contents}.pvb-chip{order:2;flex:none}.sch-zoom .segmented{order:3;flex:1 1 100%}.sch-zoom .sch-monthnav{order:4;flex:1 1 100%;justify-content:center}.sch-zoom .sch-nowbtn{order:5;flex:1 1 0}.sch-zoom>.btn{order:5;flex:1 1 0}.sch-zoom>.btn.muted{order:5}.sch-right>.pg-views-tail{order:6;flex:1 1 0;min-width:0}.sch-right>.pg-views-tail .menu-button,.sch-right>.pg-views-tail .menu-button>.btn{width:100%}.sch-right>.pg-views-tail .menu-button>.btn{white-space:nowrap;padding-left:6px;padding-right:6px;font-size:.85rem}}.pvb-chip-n{display:none}@media(max-width:599px){.pvb-chip-txt{display:none}.pvb-chip-n{display:inline;font-weight:700}.pg-views-lead{flex:1 1 0}}.adj-list{display:none;list-style:none;margin:8px 0 0;padding:0}.adj-item{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.adj-item-text{flex:1;min-width:0}.adj-item-l1{font-weight:600;overflow-wrap:anywhere}.adj-item-l2{font-size:.8125rem;color:var(--ink-3);overflow-wrap:anywhere}.adj-item .btn{min-width:40px;min-height:40px;flex:none}.adj-item,.adj-table tr{scroll-margin-bottom:72px}.adj-lit,.adj-lit td{background:color-mix(in srgb,var(--lime) 28%,transparent)}@media(max-width:640px){.adj-table{display:none}.adj-list{display:block}}.qty-edit.qty-unset .edit-text-value,.qty-unset .edit-text-value{color:var(--accent);text-decoration:underline}.stale-clear{min-height:28px;padding:0 6px}.plan-sheet-value .qty-from{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;gap:0 6px}.plan-sheet-value .qty-from .stale-line{flex-basis:100%}@media(max-width:640px){.stale-clear{min-height:40px;min-width:40px;padding:0 10px}}.cable-chain{list-style:none;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.cable-chain.open{border-color:var(--line-strong)}.cable-chain-head{display:flex;align-items:center;gap:4px}.cable-chain-toggle{flex:1;min-width:0;min-height:var(--h-ctl-touch, 40px);display:flex;align-items:center;gap:6px;text-align:left;padding:4px 10px;background:none;border:0;color:inherit;font:inherit;cursor:pointer}.cable-chain-ends{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cable-sections{list-style:none;margin:0;padding:0 6px 6px 18px;display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line)}.cable-sections .cable-row{border-color:var(--line)}.cable-sections .cable-gap{padding:4px 4px 0}.cable-chain .cable-open{min-height:36px;padding:4px 10px}.show-chain{list-style:none}.show-chain-head{padding:0 6px 0 0}.show-chain-caret{flex:none;width:28px;min-height:36px;background:none;border:0;color:var(--ink-2);cursor:pointer;font:inherit}.show-chain-total{flex:none;margin-left:auto;font-size:12.5px;white-space:nowrap}.show-sections{list-style:none;margin:0 0 2px 20px;padding:0}.bv-leader{stroke:var(--ink-2);stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}.bv-leader-dot{fill:var(--accent);stroke:var(--ink-2);stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}.bv-leader-off{opacity:.45}.route-card .route-acts{margin:4px 0;gap:6px}.route-card .route-acts .btn{min-height:var(--h-ctl, 30px)}.route-card .route-close{min-width:var(--h-ctl, 30px);min-height:var(--h-ctl, 30px)}.route-card .route-part,.route-card .route-width{margin:2px 0}.route-card .piece-head{display:flex;align-items:center;gap:8px;min-height:28px}.route-card .piece-toggle{background:none;border:0;padding:0 4px 0 0;color:var(--ink-2);font:inherit;cursor:pointer;min-height:28px}.route-card .piece-sum{white-space:nowrap}.route-card .route-pieces ul{margin:0 0 4px}.route-card .piece-row{min-height:30px}.route-card .piece-fig{min-height:28px;min-width:44px}@media(pointer:coarse),(max-width:640px){.route-card .route-acts .btn,.route-card .route-close,.route-card .piece-row,.route-card .piece-fig{min-height:40px}}@media(min-width:641px)and (pointer:fine){.cable-list{gap:4px}.cable-open{min-height:36px;padding:4px 10px;gap:0}.cable-row .cable-tick{align-self:center}}@supports (field-sizing: content){.ptree-plan,.ptree-table .ptree-plan{field-sizing:content;width:auto;min-width:2.4em;max-width:7em;text-align:start}}.date-field{position:relative;display:inline-flex;align-items:center;box-sizing:border-box;min-width:9.5em;min-height:var(--h-ctl);border:1px solid var(--line-strong);border-radius:var(--r-ctl);font-size:var(--fs-body);padding:0 9px;background:var(--surface);color:var(--ink);white-space:nowrap;cursor:pointer}.date-field-text{overflow:hidden;text-overflow:ellipsis}.date-field-text.is-empty{color:var(--ink-2)}.date-field-input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;min-height:0!important}.date-field:focus-within{outline:2px solid var(--accent);outline-offset:1px}.date-field.is-disabled{opacity:.55;cursor:default}.date-field.is-disabled .date-field-input{cursor:default}.field .date-field{display:flex;width:100%}.date-field.cell-input{min-height:0;min-width:8.5em;padding:3px 5px;border-color:transparent;background:transparent}.date-field.cell-input:hover,.date-field.cell-input:focus-within{border-color:var(--line-strong);background:var(--surface)}@media(max-width:640px){.date-field{min-height:var(--h-ctl-touch)}.date-field.cell-input{min-height:40px}}.date-field.is-typing .date-field-text{visibility:hidden}.date-field.is-typing .date-field-input{opacity:1;background:var(--surface);color:var(--ink);border-radius:var(--r7);padding:0 9px;cursor:text}.qty-card{display:grid;grid-template-columns:minmax(0,320px) 1fr auto;column-gap:8px;align-items:start}.qty-card>*{grid-column:1 / -1}.qty-card>.card-head{grid-column:3;grid-row:1;margin:0;padding:0;min-height:0;align-self:start;flex-wrap:nowrap;gap:0}.qty-card>.card-head .btn{min-width:40px;min-height:40px}.qty-card>input[type=search]{grid-column:1;grid-row:1;margin:0;min-height:40px}@media(max-width:600px){.qty-card{grid-template-columns:minmax(0,1fr) 40px}.qty-card>.card-head{grid-column:2}}@media(max-width:600px){.adj-open{display:block;width:100%;min-height:40px;margin-top:8px}.adj-form .field-wide .btn{min-height:40px}.adj-form .field-wide .btn+.btn{margin-left:8px}}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select){min-height:var(--h-ctl)}.cell-input,.edit-text,.pvb-cell .num-input,.sch input,.ptree-table input,.plan-grid td input{min-height:0}@media(pointer:coarse),(max-width:640px){.btn,.sselect-btn,.date-field{min-height:var(--h-ctl-touch)}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select){min-height:var(--h-ctl-touch)}.btn-sm{min-height:36px}.btn-xs{min-height:0}.modal-head .btn{width:var(--h-ctl-touch);min-height:var(--h-ctl-touch)}.modal-foot{min-height:56px}}@media(max-width:640px){.modal:has(.export-file){width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0}.modal:has(.export-file) .modal-foot{flex-direction:column-reverse;align-items:stretch;gap:8px;padding:12px 16px}.modal:has(.export-file) .modal-foot .spacer{display:none}.modal:has(.export-file) .modal-foot .btn{min-height:44px}}.import-line{grid-column:1 / -1;margin:0}.import-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:160px;border:2px dashed var(--line);border-radius:var(--r10);color:var(--ink-2);text-align:center;padding:0 16px}.import-drop.over{border-color:var(--accent);background:var(--surface-2)}.import-narrow{display:none}.import-bar{height:10px;border-radius:var(--r5);background:var(--surface-2);border:1px solid var(--line);overflow:hidden}.import-bar>div{height:100%;background:var(--accent);transition:width .2s}.import-bar>div.busy{animation:import-pulse 1.2s ease-in-out infinite}.import-head{margin:0 0 2px;font-size:1.25rem;line-height:1.3;overflow-wrap:anywhere;text-transform:none;letter-spacing:0;color:var(--ink)}.import-counts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.import-note p,p.import-note{margin:0}.import-people{margin:4px 0 0;padding-left:22px;font-size:.9rem;color:var(--ink-2);overflow-wrap:anywhere}.import-creating{display:flex;align-items:center;gap:10px;color:var(--ink-2)}.import-spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:import-turn .8s linear infinite}@keyframes import-turn{to{transform:rotate(360deg)}}@keyframes import-pulse{50%{opacity:.4}}@media(prefers-reduced-motion:reduce){.import-spin,.import-bar>div.busy{animation:none}}@media(max-width:399px){.import-counts{grid-template-columns:1fr}}@media(max-width:640px){.modal:has(.import-file),.modal:has(.import-check),.modal:has(.import-creating){width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;margin:0}.modal:has(.import-file) .modal-foot,.modal:has(.import-check) .modal-foot,.modal:has(.import-creating) .modal-foot{padding:0 16px;position:sticky;bottom:0}.modal:has(.import-check) .modal-foot .btn-primary{flex:1}.modal:has(.import-check) .modal-foot .btn,.modal:has(.import-file) .btn{min-height:40px}.import-drop-text,.import-wide{display:none}.import-narrow{display:inline}.import-drop{border:none;height:auto;padding:0}.import-drop .btn{width:100%}.import-fold{min-height:40px}}.sch-fromplan,.sch-noplan{color:var(--ink-2);font-size:.74rem}.progress-tab .toolbar.pg-views>.pstrip-wrap{flex:1 1 100%;order:-1}@media(min-width:1100px){.app-main:has(>.project-page){padding-top:8px}.project-page .project-top{margin-bottom:8px}.project-page .project-top>.project-head{margin-bottom:5px}.project-page .project-top .tab{min-height:34px}.progress-tab.stack>*+*{margin-top:8px}.progress-tab .toolbar.pg-views>.pstrip-wrap{flex:1 1 0;order:1;min-width:320px;margin-inline-start:8px}.progress-tab .toolbar.pg-views>:is(.sheet-tools,.sheet-warn-list){order:2}.progress-tab .toolbar.pg-views>.sheet-tools{margin-inline-start:auto}.progress-tab .toolbar.pg-views:has(>.pstrip-wrap)>.spacer{display:none}.progress-tab .pg-views .pstrip-wrap .pstrip.pstrip-box.pstrip-line{height:auto;min-height:0;max-height:none;padding:0;border:0;background:none;box-shadow:none}.progress-tab .pg-views .pstrip-line .pstrip-done{font-size:1.05rem}.progress-tab .pg-views .pstrip-wrap:has(.pstrip-line) .pstrip-list{top:calc(100% + 6px)}.progress-tab .card.ptree:not(.ptree-full){padding:8px 12px}.progress-tab .ptree>.card-head{margin-bottom:4px}.progress-tab .ptree>.card-head>h2{font-size:var(--fs-h3);line-height:26px}.progress-tab .ptree-table.ptree-hasweeks thead th{padding-block:3px}.progress-tab .ptree-table th.ptree-wk .tiny{line-height:1.15}}@media(min-width:1024px){.app:has(.progress-tab .ptree-hasweeks){display:flex;flex-direction:column;height:100dvh}.app:has(.progress-tab .ptree-hasweeks)>*{flex-shrink:0}.app:has(.progress-tab .ptree-hasweeks)>.app-main{flex:1 1 0;min-height:0;align-self:stretch;margin-inline:0;display:flex;flex-direction:column}.app-main>.project-page:has(>.progress-tab .ptree-hasweeks){flex:1 1 0;min-height:0;display:flex;flex-direction:column}.project-page:has(>.progress-tab .ptree-hasweeks)>*{flex-shrink:0}.project-page>.progress-tab:has(.ptree-hasweeks){flex-shrink:1;min-height:0;display:flex;flex-direction:column}.progress-tab:has(.ptree-hasweeks)>*{flex-shrink:0}.progress-tab>.card.ptree:not(.ptree-full):has(.ptree-hasweeks){flex-shrink:1;min-height:0;display:flex;flex-direction:column}.progress-tab>.card.ptree:not(.ptree-full)>*{flex-shrink:0}.progress-tab>.card.ptree:not(.ptree-full)>.pf-splitwrap{flex-shrink:1;min-height:0;display:flex;flex-direction:column}.progress-tab>.card.ptree:not(.ptree-full) .pf-splitwrap>.table-scroll{flex-shrink:1;min-height:160px;max-height:none}}.project-top .tabs-row{align-items:center;padding:3px;background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--r10)}.project-top .tabs-row .tabs{gap:2px}.project-top .tabs-row .tab{border-bottom:none;margin-bottom:0;border-radius:var(--r7);padding:0 14px;font-size:15px;font-weight:600;color:var(--ink-2)}.project-top .tabs-row .tab:hover{background:var(--surface);color:var(--ink)}.project-top .tabs-row .tab.active{background:var(--lime);color:var(--lime-ink)}.project-top .tabs-row .tab-more{color:var(--ink-2);font-weight:500}@media(max-width:480px){.project-top .tabs-row .tab{padding:0 6px}}@media(min-width:641px)and (max-width:1099px){.project-top .tabs-row{margin-bottom:12px}}@media(min-width:1100px){.project-page .project-top .tabs-row .tab{min-height:32px}.project-top>.tabs-row{margin-bottom:8px}}.spread-all{margin:0}.spread-all-btn{font-weight:600}@media(max-width:640px){.spread-all-btn{min-height:40px;padding:0 4px}}@media(max-width:600px){.project-page .tabs-row .tab,.project-page .tabs-row .tab-more{min-height:44px}.site-entry .btn{min-height:44px;min-width:64px}.site-entry-row input,.sl-cards .sl-card .btn.report-here{min-height:44px}}.hist-proj-phone{display:none}@media(max-width:640px){.hist-proj-col{display:none}.hist-proj-phone{display:block}}@media(max-width:640px){.app-header .btn-icon{width:44px;min-width:44px;min-height:44px}.site-mode.site-mode .btn,.site-mode.site-mode .sselect-btn,.site-mode.site-mode .building-row,.site-mode.site-mode .chip-toggle,.site-mode.site-mode .floor-toggle,.site-mode.site-mode .plan-room-row,.site-mode.site-mode .room-row,.site-mode.site-mode .site-floor,.site-mode.site-mode .site-inside-head .btn,.site-mode.site-mode .site-send-btn,.site-mode.site-mode summary{min-height:44px}.site-mode.site-mode input:not([type=checkbox]):not([type=radio]),.site-mode.site-mode select,.site-entry-row input,.site-qty-edit{min-height:44px;box-sizing:border-box}.site-mode.site-mode textarea{min-height:72px}.site-mode.site-mode .site-qty-btn,.site-mode.site-mode .site-line .btn-xs{min-height:44px;min-width:44px}}.plan-rolled{color:var(--ink-2);font-style:italic}.plan-rolled-tag{display:none;font-size:10px;line-height:1.2;color:var(--ink-3)}@media(max-width:640px){.plan-rolled-tag{display:block}}.pg-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.pg-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:12px;padding:10px;border:1px solid var(--line);border-radius:var(--r8);background:var(--surface-2)}.pg-day-title{margin:14px 0 0;font-size:1rem}.pg-more{display:flex;justify-content:center;margin:12px 0 20px}@media(max-width:640px){.pg-grid{grid-template-columns:repeat(3,1fr);gap:4px}.pg-filters{grid-template-columns:1fr 1fr}.pg-filters .field:nth-child(n+3){grid-column:1 / -1}}.pr-overlay{position:fixed;inset:0;z-index:400;overflow:auto;background:var(--bg);color:var(--ink)}.pr-bar{position:sticky;top:0;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.pr-sheet{max-width:210mm;margin:16px auto;padding:12mm;background:var(--surface);border:1px solid var(--line);box-sizing:border-box}.pr-head h1{margin:0 0 4px;font-size:1.4rem}.pr-head p{margin:2px 0}.pr-day-title{font-size:1.05rem;margin:18px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--line-strong);break-after:avoid}.pr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pr-card{margin:0;border:1px solid var(--line);border-radius:var(--r6);overflow:hidden;break-inside:avoid;page-break-inside:avoid}.pr-card img,.pr-card .photo-placeholder{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:var(--surface-2)}.pr-card figcaption{padding:6px 8px;font-size:.78rem;line-height:1.35;overflow-wrap:anywhere}@media(max-width:640px){.pr-sheet{margin:0;padding:12px;border:0}.pr-grid{grid-template-columns:1fr}}@media print{@page{size:A4;margin:12mm}body.pr-open #root{display:none}body.pr-open{background:Canvas}.pr-overlay{position:static;overflow:visible;background:Canvas;color:CanvasText}.pr-bar{display:none}.pr-sheet{max-width:none;margin:0;padding:0;border:0;background:Canvas;color:CanvasText}.pr-card,.pr-day-title{border-color:GrayText}.pr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pr-head .muted,.pr-day-title .muted{color:GrayText}}.check-overdue{margin-top:4px}.check-overdue>summary{cursor:pointer;font-size:var(--fs-small);color:var(--ink-2);min-height:28px;display:flex;align-items:center}.check-overdue[open]>summary{margin-bottom:2px}@media(max-width:640px){.check-overdue>summary{min-height:40px}}@media(min-width:1024px){.bv-top{display:flex;align-items:center;gap:12px;padding-bottom:6px}.bv-tools-top{flex:none;flex-wrap:nowrap}.bv-tools-top .btn{flex:0 1 auto;white-space:nowrap}.bv-hint{flex:1 1 0;min-width:0;margin:0;font-size:var(--fs-small);color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bv-top .bv-floor-chip{flex:1 1 0;min-width:0;margin:0;flex-wrap:nowrap}.bv-top .bv-floor-chip .show-row-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bv-top .bv-floor-chip .btn{flex:none;white-space:nowrap}}.bv-outline-plate .bv-plan-img,.bv-outline-plate .bv-grid{display:none}.bv-outline-plate .bv-plate{fill:none}.bv-outline-plate .bv-room{opacity:var(--fade-item)}.bv-outline-plate .bv-edge{stroke-width:1}.bv-lit-plate .bv-edge{stroke:var(--accent);stroke-width:1.5}.bv.bv-tidy{--fade-drawing: .22}@media(min-width:1300px){.bv.bv-tidy.bv-wide{grid-template-columns:minmax(0,780px) 380px}}.bv.bv-tidy .bv-routes .bv-route-case,.bv.bv-tidy .bv-hp .bv-route-case{display:none}.bv.bv-tidy .bv-routes .bv-route,.bv.bv-tidy .bv-routes .bv-route.bv-riser-pass{stroke-width:2;stroke-dasharray:7 5;stroke-linecap:butt}.bv.bv-tidy .bv-hp .bv-route{stroke-width:1.5;stroke-dasharray:none}.bv.bv-tidy .bv-routes .bv-route.bv-route-guess,.bv.bv-tidy .bv-hp .bv-route.bv-route-guess,.bv.bv-tidy .bv-routes .bv-route.bv-riser-pass.bv-route-guess{stroke-width:3;stroke-dasharray:.1 8;stroke-linecap:round}.bv.bv-tidy .bv-hp.bv-hot .bv-route,.bv.bv-tidy .bv-routes .bv-hot .bv-route{stroke-width:2}.bv.bv-tidy .bv-hp.bv-pressed .bv-route,.bv.bv-tidy .bv-routes .bv-pressed .bv-route{stroke-width:2.5}.bv.bv-tidy .bv-hp.bv-hot .bv-route.bv-route-guess,.bv.bv-tidy .bv-routes .bv-hot .bv-route.bv-route-guess{stroke-width:3.5}.bv.bv-tidy .bv-hp.bv-pressed .bv-route.bv-route-guess,.bv.bv-tidy .bv-routes .bv-pressed .bv-route.bv-route-guess{stroke-width:4}.signin-page{--si-bg: #0b0f0c;--si-glow: #1c2a12;--si-card: #131814;--si-line: #263027;--si-field: #1b221c;--si-field-line: #364137;--si-ink: #e6ebe4;--si-ink-2: #b2bbb3;--si-ink-3: #8a948c;--si-lime: #b5d94f;--si-lime-hover: #c6e46a;--si-lime-ink: #11160f;--si-bad-bg: #3d1b1b;--si-bad-ink: #f4a3a3;--si-bad-line: #6d2f2f;min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(circle at 20% 20%,var(--si-glow) 0,transparent 45%),var(--si-bg);color:var(--si-ink);color-scheme:dark;font-family:IBM Plex Sans,IBM Plex Sans Thai,system-ui,sans-serif;font-size:17px;line-height:1.45;-webkit-font-smoothing:antialiased}:lang(th) .signin-page{font-family:IBM Plex Sans Thai,IBM Plex Sans,system-ui,sans-serif}.signin-card{width:min(470px,100%);display:flex;flex-direction:column;gap:14px;padding:34px;margin:0;background:var(--si-card);border:1px solid var(--si-line);border-radius:var(--r14);box-shadow:0 1px 2px #00000080,0 16px 40px #00000059}.signin-card h1{margin:0;font-size:1.3em;font-weight:600;letter-spacing:-.01em;color:var(--si-ink)}.signin-brand{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin:0 0 2px;color:var(--si-ink)}.signin-brand .logo{gap:12px;color:var(--si-ink)}.signin-brand .logo-mark{width:2.7em;height:2.7em}.signin-brand .logo-word{color:var(--si-ink);font-size:1.5em;letter-spacing:1.5px}.signin-brand .logo-sub{display:block;font-size:.72em;color:var(--si-ink);opacity:.7}.signin-app{font-size:.8em;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--si-lime)}.signin-card .field{display:flex;flex-direction:column;gap:5px;font-size:1em}.signin-card .field>span:first-child{font-size:.82em;font-weight:600;color:var(--si-ink-2)}.signin-page .signin-card input:not([type=checkbox]){width:100%;min-height:0;padding:11px 13px;font:inherit;color:var(--si-ink);background:var(--si-field);border:1px solid var(--si-field-line);border-radius:var(--r9)}.signin-page .signin-card input:not([type=checkbox])::placeholder{color:var(--si-ink-3);font-style:normal}.signin-page .signin-card input:focus-visible{outline:2px solid var(--si-lime);outline-offset:1px}.signin-page .signin-card input:-webkit-autofill{-webkit-box-shadow:0 0 0 40px var(--si-field) inset;-webkit-text-fill-color:var(--si-ink);caret-color:var(--si-ink)}.signin-card .hint{font-size:.8em;color:var(--si-ink-3)}.signin-card .error-text{color:var(--si-bad-ink)}.signin-card .checkbox-row{display:flex;align-items:center;gap:9px;font-size:1em;cursor:pointer;color:var(--si-ink)}.signin-card .checkbox-row input{width:18px;height:18px;min-height:0;margin:0;accent-color:var(--si-lime)}.signin-page .signin-card .btn{min-height:0;font:inherit;font-size:.85em;font-weight:400;padding:5px 12px;border-radius:var(--r8);cursor:pointer;background:transparent;color:var(--si-ink);border:1px solid var(--si-field-line)}.signin-page .signin-card .btn:hover:not(:disabled){border-color:var(--si-lime);background:transparent}.signin-page .signin-card .btn.signin-submit{width:100%;padding:12px 16px;font-size:.95em;font-weight:600;border-radius:var(--r9);margin-top:2px;background:var(--si-lime);color:var(--si-lime-ink);border-color:var(--si-lime)}.signin-page .signin-card .btn.signin-submit:hover:not(:disabled){background:var(--si-lime-hover);border-color:var(--si-lime-hover)}.signin-page .signin-card .btn:disabled{opacity:.45;cursor:not-allowed}.signin-page .signin-card .btn.signin-submit:disabled{opacity:.7}.signin-page .signin-card .btn:focus-visible{outline:2px solid var(--si-lime);outline-offset:2px}.signin-card .muted{color:var(--si-ink-2)}.signin-card p{margin:0}.signin-hint{font-size:.82em;color:var(--si-ink-2)}.signin-card .signin-purpose{margin-top:-8px;font-size:.9em;color:var(--si-ink-2)}.signin-card .alert-error{background:var(--si-bad-bg);color:var(--si-bad-ink);border:1px solid var(--si-bad-line);border-radius:var(--r9);padding:11px 13px}.signin-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:4px}.signin-card .signin-version{font-size:.75em;color:var(--si-ink-3);white-space:nowrap}@media(max-width:420px){.signin-card{padding:24px 18px}}.toast{max-width:min(360px,calc(100vw - 32px));box-sizing:border-box}.toast:has(.toast-action){display:grid;grid-template-columns:auto 1fr auto;align-items:start;column-gap:8px;padding:6px 8px 6px 12px}.toast .toast-text{min-width:0;overflow-wrap:anywhere}.toast:has(.toast-action) .toast-action{margin-left:0;align-self:center;white-space:nowrap}.toast-count{white-space:nowrap}@media(max-width:600px){.toast-host{left:16px;right:16px;align-items:flex-end}}.tabs[data-more-right]{-webkit-mask-image:linear-gradient(to left,transparent 0,#000 16px);mask-image:linear-gradient(to left,transparent 0,#000 16px)}@media(min-width:900px){.tabs[data-more-left],.tabs[data-more-right]{-webkit-mask-image:none;mask-image:none}}@media(max-width:899px){.tabs{padding-inline-end:56px}}.tip-card{position:fixed;z-index:3000;inset:0 auto auto 0;margin:0;max-width:240px;padding:6px 9px;border-radius:var(--r6);background:var(--ink);color:var(--bg);border:1px solid var(--line-strong);font-size:12.5px;line-height:1.35;box-shadow:var(--shadow);pointer-events:none;overflow:visible;overflow-wrap:anywhere;white-space:pre-line;opacity:0;transition:opacity .12s ease-out}.tip-card.on{opacity:1}@media(prefers-reduced-motion:reduce){.tip-card{transition:none}}.npd-grid .npd-template .hint{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(min-width:760px){.npd-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.npd-grid .npd-half{grid-column:span 2}}@media(max-width:759px){.npd-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.npd-grid>.field{grid-column:1 / -1}.npd-grid>.npd-quad:nth-last-of-type(-n+2){grid-column:auto}.npd-grid .npd-template .hint{white-space:normal}}.npd-over{color:var(--warn-text);font-weight:600}.chart .chart-svg .axis-label,.chart .chart-svg .end-label{font-size:12px}.pdate-row{display:inline-flex;align-items:center;gap:4px;vertical-align:middle}.pdate{box-sizing:border-box;width:84px;min-height:28px;padding:3px 6px;border:1px solid transparent;border-radius:var(--r6);background:transparent;color:var(--ink, inherit);font:inherit;font-size:13px;text-align:start;white-space:nowrap}.pdate-cell{cursor:text}.pdate-cell:hover{border-color:var(--line-strong)}.pdate-cell:focus-visible,.pdate-input{border-color:var(--accent, var(--line-strong));background:var(--surface);outline:none}.pdate-input[aria-invalid=true]{border-color:var(--bad-ink)}input.pdate-input:focus-visible{outline:none}input.pdate-input[aria-invalid=true]:focus-visible{outline:1px solid var(--bad-ink)}.pdate-ro{cursor:default;color:var(--ink, inherit)}.pdate-days{flex:none;min-width:64px;font-size:13px;white-space:nowrap;text-align:start}.pdate-heads .pdate{color:var(--ink-2);font-size:12px;font-weight:600}.pdate-edit{position:relative;display:inline-block}.pdate-err{position:absolute;top:100%;inset-inline-start:0;z-index:5;width:max-content;max-width:230px;margin-top:2px;padding:3px 6px;border-radius:var(--r6);background:var(--surface);border:1px solid var(--bad-ink);color:var(--bad-ink);font-size:12px;line-height:1.3;white-space:normal;text-align:start}.ptree-last .pdate-row{margin-inline-end:2px}.pdate-edit:has([data-pdcell=finish]) .pdate-err{inset-inline-start:auto;inset-inline-end:0}@media(min-width:641px)and (max-width:1199px){.pdate-days{display:none}.pdate-row{gap:2px}}.sch td.c5 .pdate,.sch td.c6 .pdate{width:100%;padding:2px 3px;font-size:12px;text-align:center;white-space:normal;line-height:1.15}.sch td.c5 .pdate-edit,.sch td.c6 .pdate-edit{display:block}.sch td.c5 .pdate-err,.sch td.c6 .pdate-err{inset-inline-start:0}.pdate-phone{display:none}@media(min-width:641px){.ptree-sub:has(>.pdate-phone:only-child){display:none}}@media(max-width:640px){.ptree-last .pdate-row,.pdate-heads{display:none}.pdate-phone{display:block;font-size:12px;text-align:start}.pdate-phone-btn{min-height:40px;max-width:100%;padding:0;border:0;background:transparent;color:var(--ink-2);font:inherit;font-size:12px;cursor:pointer}.ptree-sub:has(.pdate-phone){grid-row:3;grid-column:2 / -1;min-width:0;white-space:normal}.ptree-table .ptree-row:has(.pdate-phone)>td.ptree-last{grid-row:4}.modal:has(.pdate-sheet) .modal-head{min-height:44px;padding:0 4px 0 14px}.modal:has(.pdate-sheet) .modal-head h2{font-size:14px;font-weight:600;overflow-wrap:anywhere}.modal:has(.pdate-sheet) .modal-head .btn{flex:none;width:40px;min-width:40px;min-height:40px}.pdate-save{width:100%;min-height:44px}}.pdate-sheet{display:flex;flex-direction:column;gap:10px;min-width:240px}.pdate-sheet .pdate-field{min-height:44px}.pdate-count{margin:0;min-height:1.2em;font-size:13px}.pdate-err-sheet{position:static;max-width:none;margin:0}.pdate-flag{display:inline-flex;align-items:center;gap:4px;flex:none;margin-inline-start:4px;padding:0 6px;min-height:24px;border:1px solid var(--warn-line);border-radius:var(--r6);background:var(--warn-bg);color:var(--warn-text);font:inherit;font-size:12px;font-weight:600;white-space:nowrap}.pdate-bang{font-weight:800}.pdate-flag-btn{cursor:pointer}.pdate-flag-btn:hover{border-color:var(--warn-text)}.sch td.c6 .pdate-flag{margin:2px 0 0;padding:0 5px;min-height:18px}.gb-chk{color:var(--warn-text);font-weight:800}.sch-lg-mark.chk{color:var(--warn-text)}.pdate-phone-flag{display:none}@media(max-width:640px){.pdate-phone-flag{display:block}.pdate-flag{margin-inline-start:0;min-height:28px;font-size:12px}.pdate-flag-btn{min-height:40px}}@media(min-width:641px)and (max-width:1199px){.ptree-last .pdate-flag-text{display:none}.ptree-last .pdate-flag{padding:0 6px;min-width:24px;justify-content:center}}.sch td.c6:has(.pdate-flag){white-space:nowrap}.sch td.c6:has(.pdate-flag) .pdate,.sch td.c6:has(.pdate-flag) .pdate-edit{display:inline-block;width:calc(100% - 24px);vertical-align:middle}.sch td.c6 .pdate-flag{margin:0;vertical-align:middle}@media(max-width:599px){.sch-box{max-height:calc(100dvh - 120px)!important;min-height:420px}.sch-box .sch{--frz-w: 104px}.sch-box .sch .c2{width:104px;min-width:104px}.sch-box .sch .band-t{left:108px}.sch-box .sch tbody .c2 .sch-name button.sch-pick{-webkit-line-clamp:2;line-height:1.15}.sch-box .sch .sch-sub2{font-size:11px;line-height:1.2;white-space:normal;overflow-wrap:anywhere}.sch-box .sch th,.sch-box .sch td{height:46px}}.sch-box .gb-label.in.edge{right:3px;left:auto;margin:0;text-align:right;color:var(--ink);text-shadow:0 0 2px var(--surface),0 0 2px var(--surface)}.sch-box .gb.late .gb-label.in.edge{color:var(--st-issue)}@media(min-width:641px){.sch-box.has-panel.has-panel-edit{padding-right:352px}}.sch-edit-hint{margin:0 0 8px}.sch-panel-body>p>.btn-sm{min-height:32px}@media(max-width:640px){.sch-panel-body>p>.btn-sm{min-height:40px}}button.sch-cell.on{outline:2px solid var(--st-progress);outline-offset:-2px}table.sch:not(.staff):not(.edit) span.sch-cell.plan{background:var(--st-planned-fill);border-color:transparent}button.sch-cell .sch-pl{pointer-events:none}.sch-full .card-head>div.sch-fullhead.sch-fullhead{display:flex}.sch-fullhead{align-items:center;height:32px;flex:0 1 auto;max-width:52%;min-width:0;margin-right:12px}.pstrip-compact{display:flex;align-items:center;gap:0 6px;min-width:0;white-space:nowrap;overflow:hidden;font-size:.85rem;color:var(--ink-2)}.pstrip-compact>*{flex:none}.pstrip-compact>.pstrip-cname{flex:0 1 auto;min-width:4ch;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis}.pstrip-cverdict{margin-left:6px;font-weight:600;color:var(--ink)}@media(max-width:640px){.sch-fullhead{display:none!important}}.sch td.gcell .sch-nodates{position:sticky;left:calc(var(--frz-w) + 154px);display:inline-block;white-space:nowrap;padding-left:4px}.sch td.gcell:has(.sch-nodates){text-align:left}.sch thead th.two{line-height:1.15;padding:2px}.sch thead th.two .wk-n,.sch thead th.two .wk-d{display:block}.sch thead th.two .wk-n{font-weight:700}.sch thead th.two .wk-d{font-size:.75rem;font-weight:400}@media(max-width:640px){.sch-box .sch.sch{--sch-head-h: 22px}.sch-box .sch thead th.r1{height:22px;padding-top:0;padding-bottom:0;line-height:22px;font-size:12px}.sch-box .sch thead th.r1.frz{height:auto;line-height:1.15}.sch-box .sch thead th.r2.two{height:50px;padding:4px;line-height:1.15}.sch-box .sch thead th.two .wk-n{font-size:13px}.sch-box .sch thead th.two .wk-d{font-size:11px}.sch-box .sch thead th.two .hol-dot{margin-left:3px;vertical-align:middle}.sch-box .sch tbody .c2 .sch-name button.sch-pick{display:block;-webkit-line-clamp:unset;overflow:visible;text-overflow:clip}}@media(min-width:701px){.sch-box .sch.sch{--frz-w: 362px}.sch-box .sch.sch .c3{width:110px;min-width:110px;max-width:110px;text-align:left;padding-left:6px}.sch-box .sch.sch .band-t{left:calc(var(--frz-w) + 4px)}}.sch td.gcell .sch-nodates{left:calc(var(--frz-w) + 4px)}.sch .dq{line-height:1.15}.sch .dq .sch-c7-st{display:block;font-size:.75rem;line-height:1.15;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sch .dq .sch-c7-st [data-tone=slight]{color:var(--warn-text);font-weight:600}.sch .dq .sch-c7-st [data-tone=behind]{color:var(--bad-ink);font-weight:600}@media(min-width:768px){.sch-lg.day{flex-wrap:nowrap;gap:4px 10px;white-space:nowrap}.sch-lg.day .sch-lg-chip{flex:none}}@media(min-width:600px){.sch-box{min-height:420px}}.sch .dq .sch-c7-st{white-space:normal;line-height:1.25;overflow:hidden;text-overflow:clip}.sch-panel-body>p.sch-cell-line{margin:0 0 6px;font-size:16px;font-weight:600;line-height:1.3}@media(max-width:640px){.sch-panel.sch-panel,.sch-full .sch-panel.sch-panel{max-height:50vh;max-height:50dvh}}.sch-box .sch tr.sch-foldrow td{overflow:visible;padding:0;height:44px;background:var(--surface)}.sch-box .sch .sch-foldbtn{position:sticky;left:0;display:flex;align-items:center;min-height:44px;width:calc(100vw - 48px);max-width:100%;padding:6px 10px;border:0;background:transparent;color:var(--link, var(--st-progress));font:inherit;font-size:13px;text-align:left;cursor:pointer}td.w.sch-out{background-image:repeating-linear-gradient(45deg,var(--line) 0 1px,transparent 1px 6px)}td.w.sch-out .sch-pl{color:var(--warn-ink)}td.w.sch-out .sch-cell{border:1px dashed var(--warn-line);background-color:var(--warn-bg)}.sch-lg-sw.out{border:1px dashed var(--warn-ink);background:var(--warn-bg)}.sch td.c6.late .pdate{color:var(--st-issue)}.pvb-grid-card:not(.sch-full) .sch-box{min-height:0}@media(max-width:759px){button.sch-cell{min-height:40px;height:100%}}.sch-skel-box{display:flex;flex-direction:column;gap:4px;padding:4px 0}.sch-skel{height:44px;border-radius:var(--r6);background:var(--surface-2);animation:sch-skel-pulse 1.2s ease-in-out infinite}@keyframes sch-skel-pulse{50%{opacity:.5}}@media(prefers-reduced-motion:reduce){.sch-skel{animation:none}}.sch-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(min-width:1024px){.sch-box .sch.staff.sch{--c2w: 150px;--dw: 84px;--frz-w: calc(32px + var(--c2w) + 110px + 48px + var(--dw) * 2)}.sch-box .sch.staff.sch .c2{width:var(--c2w);min-width:var(--c2w);max-width:var(--c2w)}.sch-box .sch.staff.sch .c3{left:calc(32px + var(--c2w));border-right:1px solid var(--line)}.sch-box .sch.staff.sch .c4{display:none}.sch-box .sch.staff.sch .c5,.sch-box .sch.staff.sch .c6{display:table-cell;width:var(--dw);min-width:var(--dw);max-width:var(--dw);padding:0 4px;text-align:center}.sch-box .sch.staff.sch col.c5,.sch-box .sch.staff.sch col.c6{display:table-column}.sch-box .sch.staff.sch .cp{display:table-cell;left:calc(32px + var(--c2w) + 110px);width:48px;min-width:48px;max-width:48px;padding:0 4px;text-align:right;font-variant-numeric:tabular-nums;border-right:1px solid var(--line)}.sch-box .sch.staff.sch col.cp{display:table-column;width:48px}.sch-box .sch.staff.sch .c5{left:calc(32px + var(--c2w) + 110px + 48px)}.sch-box .sch.staff.sch .c6{left:calc(32px + var(--c2w) + 110px + 48px + var(--dw));border-right:2px solid var(--line-strong)}}@media(min-width:1440px){.sch-box .sch.staff.sch{--c2w: 220px;--dw: 80px}}.sch-box .sch .cp{display:none}.sch-box .gb.drag{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.sch-box .gb.drag:active{cursor:grabbing}.sch-box .gb.drag:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.sch-moveask{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;width:100%;padding:8px 0}@media(max-width:640px){.sch-moveask{flex-direction:column-reverse}.sch-moveask .btn{width:100%;min-height:44px}}.sch-dragtip{position:fixed;z-index:60;pointer-events:none;padding:3px 8px;border-radius:var(--r6);background:var(--ink);color:var(--surface);font-size:12px;white-space:nowrap;box-shadow:0 2px 8px #00000040}.ptree-table th.ptree-wk,.ptree-table td.ptree-wk{min-width:3.2rem;padding-inline:4px;text-align:center;font-variant-numeric:tabular-nums;border-inline-start:1px solid var(--line)}.ptree-table .ptree-wk-now{background:color-mix(in srgb,var(--accent) 14%,transparent)}.ptree-table .ptree-wk-edge{background-color:color-mix(in srgb,var(--ink-2) 10%,transparent);color:var(--ink-2)}.ptree-table th.ptree-wk-edge>div{opacity:.6}.ptree-table td.ptree-wk-edge:not(.ptree-wk-now){opacity:.7}.ptree-table .ptree-wk-now.ptree-wk-edge{background-color:color-mix(in srgb,var(--accent) 14%,transparent)}.ptree-table td.ptree-wk-done{box-shadow:inset 0 -2px 0 var(--good-ink)}.ptree-table.ptree-hasweeks td.ptree-name,.ptree-table.ptree-hasweeks th:first-child{position:sticky;inset-inline-start:0;z-index:1;background:var(--surface)}@media(min-width:641px)and (max-width:1023px){.ptree-table.ptree-hasweeks td.ptree-name,.ptree-table.ptree-hasweeks th:first-child{box-sizing:border-box;width:clamp(150px,36vw,300px);min-width:150px;max-width:clamp(150px,36vw,300px)}.ptree-table.ptree-hasweeks td.ptree-name .ptree-namebox{min-width:0}.ptree-table.ptree-hasweeks td.ptree-name .ptree-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-width:640px){.ptree-table.ptree-hasweeks td.ptree-name,.ptree-table.ptree-hasweeks th:first-child{position:static}}@media(max-width:640px){.ptree-table .ptree-wk,.ptree-table .ptree-row>td.ptree-wk{display:none}}.ptree-table td.ptree-wk-act{color:var(--good-ink);background:color-mix(in srgb,var(--good-ink) 12%,transparent);font-weight:600}.ptree-table td.ptree-wk-act:before,.ptree-table td.ptree-wk-zero:before{content:none}.ptree-wk-d{display:block;font-size:13px;line-height:1.25}.ptree-wk-of{display:block;white-space:nowrap;font-size:11px;font-weight:400;line-height:1.2;color:var(--ink-2)}.ptree-table td.ptree-wk-zero .ptree-wk-d{color:var(--bad-ink);font-weight:600}.ptree-table td.ptree-wk-pl{color:var(--ink-2)}.ptree-table td.ptree-wk-now.ptree-wk-act{background:color-mix(in srgb,var(--good-ink) 12%,color-mix(in srgb,var(--accent) 14%,transparent))}@media(min-width:1024px){.ptree-table.ptree-hasweeks{--w-no: 36px;--w-detail: 200px;--w-qty: 64px;--w-done: 52px;--w-act: 64px;--w-pl: 44px;--w-start: 56px;--w-fin: 56px;--w-wt: 0px;--w-owner: 0px;--w-remark: 0px;--w-menu: 24px;--o-detail: var(--w-no);--o-qty: calc(var(--o-detail) + var(--w-detail));--o-done: calc(var(--o-qty) + var(--w-qty));--o-act: calc(var(--o-done) + var(--w-done));--o-pl: calc(var(--o-act) + var(--w-act));--o-start: calc(var(--o-pl) + var(--w-pl));--o-fin: calc(var(--o-start) + var(--w-start));--o-wt: calc(var(--o-fin) + var(--w-fin));--o-owner: calc(var(--o-wt) + var(--w-wt));--o-remark: calc(var(--o-owner) + var(--w-owner));--o-menu: calc(var(--o-remark) + var(--w-remark))}.ptree-table.ptree-hasweeks :is(td,th):is(.pf-no,.pf-detail,.pf-qty,.pf-done,.pf-act,.pf-pl,.pf-start,.pf-finish,.pf-wt,.pf-owner,.pf-remark,.pf-menu){box-sizing:border-box;position:sticky;z-index:1;background:var(--surface);padding-inline:4px}.ptree-table.ptree-hasweeks tr.ptree-phase>td:is(.pf-no,.pf-detail,.pf-qty,.pf-done,.pf-act,.pf-pl,.pf-start,.pf-finish,.pf-wt,.pf-owner,.pf-remark,.pf-menu){background:color-mix(in srgb,currentColor 6%,var(--surface))}.ptree-table.ptree-hasweeks :is(td,th).pf-no{width:var(--w-no);min-width:var(--w-no);max-width:var(--w-no);inset-inline-start:var(--o-no, 0px);z-index:2;white-space:nowrap}.ptree-table.ptree-hasweeks :is(td,th).pf-detail{width:var(--w-detail);min-width:var(--w-detail);max-width:var(--w-detail);inset-inline-start:var(--o-detail);z-index:2}.ptree-table.ptree-hasweeks :is(td,th).pf-qty{width:var(--w-qty);min-width:var(--w-qty);max-width:var(--w-qty);inset-inline-start:var(--o-qty)}.ptree-table.ptree-hasweeks :is(td,th).pf-done{width:var(--w-done);min-width:var(--w-done);max-width:var(--w-done);inset-inline-start:var(--o-done)}.ptree-table.ptree-hasweeks td.pf-qtydone{width:calc(var(--w-qty) + var(--w-done));min-width:calc(var(--w-qty) + var(--w-done));max-width:calc(var(--w-qty) + var(--w-done))}.ptree-table.ptree-hasweeks :is(td,th).pf-act{width:var(--w-act);min-width:var(--w-act);max-width:var(--w-act);inset-inline-start:var(--o-act)}.ptree-table.ptree-hasweeks :is(td,th).pf-pl{width:var(--w-pl);min-width:var(--w-pl);max-width:var(--w-pl);inset-inline-start:var(--o-pl)}.ptree-table.ptree-hasweeks :is(td,th).pf-start{width:var(--w-start);min-width:var(--w-start);max-width:var(--w-start);inset-inline-start:var(--o-start)}.ptree-table.ptree-hasweeks td.pf-startfin{width:calc(var(--w-start) + var(--w-fin));min-width:calc(var(--w-start) + var(--w-fin));max-width:calc(var(--w-start) + var(--w-fin))}.ptree-table.ptree-hasweeks :is(td,th).pf-finish{width:var(--w-fin);min-width:var(--w-fin);max-width:var(--w-fin);inset-inline-start:var(--o-fin)}.ptree-table.ptree-hasweeks.pf-s-wt{--w-wt: 56px}.ptree-table.ptree-hasweeks.pf-s-owner{--w-owner: 104px}.ptree-table.ptree-hasweeks.pf-s-remark{--w-remark: 150px}.ptree-table.ptree-hasweeks :is(td,th).pf-wt{width:var(--w-wt);min-width:var(--w-wt);max-width:var(--w-wt);inset-inline-start:var(--o-wt)}.ptree-table.ptree-hasweeks :is(td,th).pf-owner{width:var(--w-owner);min-width:var(--w-owner);max-width:var(--w-owner);inset-inline-start:var(--o-owner)}.ptree-table.ptree-hasweeks :is(td,th).pf-remark{width:var(--w-remark);min-width:var(--w-remark);max-width:var(--w-remark);inset-inline-start:var(--o-remark)}.ptree-table.ptree-hasweeks .pf-edit{all:unset;display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border-radius:var(--r3)}.ptree-table.ptree-hasweeks .pf-edit:after{content:"";position:absolute;inset:0}.ptree-table.ptree-hasweeks .pf-edit:is(:hover,:focus-visible){outline:1px dashed var(--border-strong, var(--border));outline-offset:1px}.ptree-table.ptree-hasweeks .pf-edit-input{width:100%;box-sizing:border-box;font-size:.8rem;padding:1px 3px}.ptree-table.ptree-hasweeks .pf-edit .muted{opacity:.5}.ptree-table.ptree-hasweeks td:is(.pf-wt,.pf-owner,.pf-remark){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.8rem}.ptree-table.ptree-hasweeks :is(td,th).pf-menu{width:var(--w-menu);min-width:var(--w-menu);max-width:var(--w-menu);inset-inline-start:var(--o-menu);padding-inline:0;text-align:center;box-shadow:inset -2px 0 0 var(--line-strong)}.ptree-table.ptree-hasweeks td:is(.pf-qty,.pf-done,.pf-act,.pf-pl){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.ptree-table.ptree-hasweeks td.pf-qtydone:has(:is(.menu-pop,.done-sheet,.target-edit)){overflow:visible}.ptree-table.ptree-hasweeks td:has(.doc-sheet){overflow:visible}.ptree-table.ptree-hasweeks td.pf-pl{font-size:.85em}.ptree-table.ptree-hasweeks :is(td,th):is(.pf-act,.pf-pl){padding-inline:2px}.ptree-table.ptree-hasweeks tr.ptree-w>td{height:26px;padding-block:1px}.ptree-table.ptree-hasweeks tr.ptree-w:has(.pf-note:not(:empty))>td{height:34px}.ptree-table.ptree-hasweeks :is(.fig-btn,.done-chip,.fig-input){min-height:22px}.ptree-table.ptree-hasweeks .fig-plain{min-height:22px;line-height:22px}.ptree-table.ptree-hasweeks td:is(.pf-qtydone,.pf-done) :is(.done-chip,.done-plain){min-height:22px;line-height:22px}.ptree-table.ptree-hasweeks .done-hit{padding:2px}.ptree-table.ptree-hasweeks th.ptree-wk,.ptree-table.ptree-hasweeks td.ptree-wk{min-width:44px}.ptree-table.ptree-hasweeks td.pf-no{font-size:11px;line-height:1;padding-inline:2px}.ptree-table.ptree-hasweeks td.pf-no .ptree-fold{width:16px;height:24px;vertical-align:middle;font-size:12px}.ptree-table.ptree-hasweeks td.pf-no :is(.work-code,.method-icon){display:inline;min-width:0;margin:0;width:auto;vertical-align:middle}.ptree-table.ptree-hasweeks .pf-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1;overflow:hidden;overflow-wrap:normal;word-break:normal;line-height:1.25}.ptree-table.ptree-hasweeks .pf-title .work-name{display:contents}.ptree-table.ptree-hasweeks .pf-title:has(.work-name:focus-visible){outline:2px solid var(--line-strong);outline-offset:1px;border-radius:var(--r3)}.ptree-table.ptree-hasweeks .pf-title .edit-text-value{display:inline;overflow:visible;text-overflow:clip;overflow-wrap:normal;word-break:normal;white-space:normal}.ptree-table.ptree-hasweeks .pf-title .method-icon{width:auto;margin-inline-end:4px}.ptree-table.ptree-hasweeks .pf-title .ptree-countchip{display:none}.ptree-table.ptree-hasweeks .pf-note{margin-top:1px;font-size:11px;line-height:1.2;color:var(--ink-2);white-space:normal;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.ptree-table.ptree-hasweeks .pf-note:empty{display:none}.ptree-table.ptree-hasweeks .pf-note:has(:is(.menu-pop,.pdate-err)){overflow:visible}.ptree-table.ptree-hasweeks .pf-note>*{display:inline;margin-inline-end:6px;font-size:inherit}.ptree-table.ptree-hasweeks .pf-note :is(.ptree-countfig,.ptree-info){display:inline}.ptree-table.ptree-hasweeks .pf-note .ptree-info{white-space:normal;max-width:none}.ptree-table.ptree-hasweeks .pf-note>*+.ptree-info:before{content:"· "}.ptree-table.ptree-hasweeks .pf-note .ptree-countfig>*{display:inline;margin-inline-end:6px}.ptree-table.ptree-hasweeks .pf-note .pf-fixlink{color:var(--warn-text);font-size:inherit;padding:0;min-height:0;border:0;background:none;cursor:pointer}.ptree-table.ptree-hasweeks .pf-note .pf-fixlink:hover{text-decoration:underline}.ptree-table.ptree-hasweeks .pf-note :is(.pdate-flag,.mm-btn,.link-btn){min-height:0;font-size:inherit}.ptree-table.ptree-hasweeks :is(td.pf-start,td.pf-finish) :is(.pdate,.pdate-edit){width:100%;min-width:0;padding:3px 2px;font-size:12px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ptree-table.ptree-hasweeks :is(td.pf-start,td.pf-finish) .pdate-edit{display:block;overflow:visible}.ptree-table.ptree-hasweeks td.pf-startfin{text-align:center;font-size:12px}.ptree-table.ptree-hasweeks td>.pf-full{position:sticky;inset-inline-start:0;box-sizing:border-box;width:calc(var(--o-menu) + var(--w-menu));padding-inline-start:var(--pf-ind, 8px);background:var(--surface)}.ptree-table.ptree-hasweeks tr:has(>td>.pf-full)>td{padding-inline-start:0}.ptree-table.ptree-hasweeks :is(.pf-ms-date,.pf-ms-done){font-size:12px;white-space:nowrap}.ptree-table.ptree-hasweeks td.pf-done .pf-ms-done{color:var(--ink-2)}.ptree-table.ptree-hasweeks td.pf-finish .pf-ms-date:not(:has(.pdate-yr)){display:block;text-align:center}.ptree-table.ptree-hasweeks :is(td.pf-start,td.pf-finish) button.pdate-cell:has(.pdate-yr),.ptree-table.ptree-hasweeks :is(td.pf-start,td.pf-finish) .pdate-ro:has(.pdate-yr){display:flex;flex-direction:column;align-items:center;line-height:1.1;padding-block:1px}.ptree-table.ptree-hasweeks :is(td.pf-start,td.pf-finish,td.pf-done) .pdate-yr{font-size:10px;color:var(--ink-2)}.ptree-table.ptree-hasweeks :is(.pf-ms-date,.pf-ms-done):has(.pdate-yr){display:flex;flex-direction:column;align-items:center;line-height:1.1}.ptree-table.ptree-hasweeks td.pf-menu .menu-button{display:inline-block}.ptree-table.ptree-hasweeks td.pf-menu .work-menu{min-width:0;width:24px;padding:0;margin:0}.ptree-table.ptree-hasweeks .pf-qtydone :is(.target-cell,.target-edit){flex-wrap:nowrap;justify-content:flex-end;gap:2px;min-width:0}.ptree-table.ptree-hasweeks .pf-qtydone :is(.target-cell,.target-edit) .num-input{flex:1 1 0;width:0;min-width:36px}.ptree-table.ptree-hasweeks .pf-qtydone .target-edit .unit-input{flex:0 1 34px;width:34px;min-width:24px;padding-inline:2px}.ptree-table.ptree-hasweeks .pf-qtydone .target-edit .btn{flex:none;padding-inline:4px;min-height:0}.ptree-table.ptree-hasweeks th:is(.pf-no,.pf-detail,.pf-qty,.pf-done,.pf-act,.pf-pl,.pf-start,.pf-finish,.pf-unit,.pf-wt,.pf-owner,.pf-remark){padding-inline:4px;font-size:.7rem;white-space:nowrap;overflow:hidden}}@media(min-width:1440px){.ptree-table.ptree-hasweeks{--w-detail: 200px;--w-qty: 64px;--w-unit: 44px;--o-unit: calc(var(--o-qty) + var(--w-qty));--o-done: calc(var(--o-unit) + var(--w-unit))}.ptree-table.ptree-hasweeks :is(td,th).pf-unit{box-sizing:border-box;position:sticky;z-index:1;background:var(--surface);width:var(--w-unit);min-width:var(--w-unit);max-width:var(--w-unit);inset-inline-start:var(--o-unit);padding-inline:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ptree-table.ptree-hasweeks td.pf-unit{font-size:.85em}.ptree-table.ptree-hasweeks tr.ptree-phase>td.pf-unit{background:color-mix(in srgb,currentColor 6%,var(--surface))}.ptree-table.ptree-hasweeks td.pf-qtydone{width:calc(var(--w-qty) + var(--w-unit) + var(--w-done));min-width:calc(var(--w-qty) + var(--w-unit) + var(--w-done));max-width:calc(var(--w-qty) + var(--w-unit) + var(--w-done))}}.ptree-table.ptree-hasweeks :is(td,th):is(:focus-within,:has(.menu-pop,.done-sheet)){z-index:5}.sheet-tools{display:flex;align-items:center;gap:8px}@media(max-width:639px){.sheet-tools>:not(.pvb-chip){display:none}}.sheet-tools .sch-fullbtn,.ptree-fullbtns .sch-fullbtn{white-space:nowrap;flex:none}@media(max-width:640px){.sheet-tools>.sch-nowbtn,.ptree-fullbtns>.sch-nowbtn{display:none}}.sheet-warn-jump{color:inherit;text-align:start;text-decoration:underline dotted;text-underline-offset:3px}.sheet-warn-jump:hover,.sheet-warn-jump:focus-visible{color:var(--accent)}@media(max-width:640px){.progress-tab .toolbar.pg-views{flex-wrap:wrap}.progress-tab .toolbar.pg-views:has(>.sheet-warn-list){flex-wrap:wrap}.progress-tab .toolbar.pg-views>.sheet-warn-list{flex:1 1 100%;order:9;min-width:0}.sheet-warn-list li{padding:0}.sheet-warn-jump{display:inline-flex;align-items:center;min-height:40px}}.progress-tab .toolbar.pg-views{align-items:center}.sheet-warn-list{flex:1 1 100%}.sheet-warn-list ul{max-height:40vh;overflow-y:auto;overscroll-behavior:contain}@media(min-width:1024px){.table-scroll:has(>.ptree-hasweeks){max-height:calc(100dvh - 72px);overscroll-behavior:contain}.ptree-full .table-scroll:has(>.ptree-hasweeks){max-height:none}.ptree-table.ptree-hasweeks thead th{position:sticky;top:0;z-index:3;background:var(--surface)}.ptree-table.ptree-hasweeks thead th.ptree-wk-now{background:color-mix(in srgb,var(--accent) 14%,var(--surface))}.ptree-table.ptree-hasweeks thead th:is(.pf-no,.pf-detail,.pf-qty,.pf-unit,.pf-done,.pf-act,.pf-pl,.pf-start,.pf-finish,.pf-wt,.pf-owner,.pf-remark,.pf-menu){z-index:4}}.ptree.ptree-full{position:fixed;inset:0;z-index:60;margin:0;border-radius:0;box-sizing:border-box;padding:10px;display:flex;flex-direction:column;background:var(--surface)}.ptree-full .table-scroll{flex:1;min-height:0;overflow:auto}.ptree-full .ptree-helprow,.ptree-full .ptree-toggle-all{display:none}.ptree-fullbtns{display:flex;align-items:center;gap:8px}.sheet-scale{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.sheet-scale .sch-monthnav{gap:4px}@media(max-width:640px){.sheet-scale{display:none}}.ptree-full .card-head,.ptree-fullbtns{flex-wrap:wrap}.ptree-full .sheet-warn-list{flex:1 1 100%}.ptree-wknote{margin:6px 4px 0}@media(max-width:639px){.ptree-wknote{display:none}}.ptree-table th.ptree-wk,.ptree-table td.ptree-wk{min-width:56px}.ptree-more{margin-inline-start:4px;padding:0 6px;min-width:22px;min-height:22px;line-height:1;border:1px solid var(--line);border-radius:var(--r6);background:var(--surface);color:var(--ink-2);cursor:pointer;font:inherit}.ptree-more:hover,.ptree-more.on{border-color:var(--accent);color:var(--accent)}.ptree-table button.ptree-wk-btn{all:unset;display:block;width:100%;box-sizing:border-box;cursor:pointer;font:inherit;color:inherit;text-align:center}.ptree-table button.ptree-wk-btn:hover{text-decoration:underline}.ptree-table button.ptree-wk-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ptree-table td.ptree-wk-on{box-shadow:inset 0 0 0 2px var(--accent)}@media(max-width:700px){.ptree-more{min-width:32px;min-height:32px;flex:none}}.ptree-namebox>.ptree-more{flex:none}@media(max-width:640px){.ptree-table .ptree-row.ptree-row .ptree-title-open{min-height:40px;box-sizing:border-box;cursor:pointer;-webkit-box-pack:center}.ptree-title-open:after{content:" ›";color:var(--ink-2)}.ptree-title-open.on,.ptree-title-open.on:after{color:var(--accent)}.ptree-title-open:focus-visible{outline:2px solid var(--accent);outline-offset:1px}}.ptree-table td.ptree-wk-typ{cursor:cell;-webkit-user-select:none;user-select:none;padding:0 4px}.ptree-table td.ptree-wk-typ.ptree-wk-sel{outline:2px solid var(--accent);outline-offset:-2px}.ptree-table td.ptree-wk-rng{background:color-mix(in srgb,var(--accent) 18%,transparent)}.ptree-table td.ptree-wk-typ:hover:not(.ptree-wk-sel){box-shadow:inset 0 0 0 1px var(--line-strong)}.ptree-table td.ptree-wk-typ .ptree-wk-in{box-sizing:border-box;width:100%;min-width:0;height:100%;margin:0;padding:0 2px;border:0;border-radius:0;background:var(--surface);color:inherit;font:inherit;text-align:center;font-variant-numeric:tabular-nums;outline:2px solid var(--accent);outline-offset:-2px;-webkit-user-select:text;user-select:text}@media(min-width:1024px){.ptree.ptree-panelopen .table-scroll{padding-inline-end:352px}}@media(min-width:1024px)and (max-width:1279px){.ptree.ptree-panelopen .ptree-table.ptree-hasweeks :is(td,th){inset-inline-start:auto!important}.ptree.ptree-panelopen .ptree-table.ptree-hasweeks tbody :is(td,th),.ptree.ptree-panelopen .ptree-table.ptree-hasweeks td>.pf-full{position:static!important}}@media(min-width:641px){.ptree>.card-head{align-items:flex-start;gap:12px;margin-bottom:8px}.ptree>.card-head>h2{flex:none;white-space:nowrap;line-height:32px}.ptree>.card-head>.ptree-legend{flex:1 1 0;min-width:0;margin:0}.ptree-legend>summary{display:flex;align-items:center;gap:12px;min-height:32px}.ptree-legend .ptree-lgchips{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 14px;font-size:.85rem;color:var(--ink-2)}.ptree-legend .ptree-lgchips~.plan-help-line{display:none}.ptree-legend .plan-help-link{margin-inline-start:auto}}.pvb-chip-short{display:none}@media(max-width:599px){.pvb-chip .pvb-chip-short{display:inline}.pvb-chip .pvb-chip-caret{display:none}}.ptree-table td.ptree-wk-band{position:relative;isolation:isolate;background-origin:border-box}.ptree-table td.ptree-wk-band:not(.ptree-wk-bs){border-inline-start-color:transparent}.ptree-table td.ptree-wk-band:before{content:"";position:absolute;inset-inline:0;top:50%;height:16px;margin-top:-8px;z-index:-1;box-sizing:border-box;border-block:1.5px solid var(--st-planned);background:color-mix(in srgb,var(--st-planned) 20%,transparent);pointer-events:none}.ptree-table td.ptree-wk-bs:before{inset-inline-start:3px;border-inline-start:1.5px solid var(--st-planned)}.ptree-table td.ptree-wk-be:before{inset-inline-end:3px;border-inline-end:1.5px solid var(--st-planned)}.ptree-table td.ptree-wk-over:before{border-color:var(--warning)}.ptree-table td.ptree-wk-star{position:relative}.ptree-table td.ptree-wk-star>.ptree-wk-mark{position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;pointer-events:none;overflow:visible}.ptree-wk-mark rect{fill:color-mix(in srgb,var(--st-planned) 20%,transparent);stroke:var(--st-planned);stroke-width:4;stroke-linejoin:round}.ptree-table td.ptree-wk-star.ptree-wk-ab>.ptree-wk-mark rect{fill:var(--st-hp);stroke:none}.ptree-table td.ptree-wk-star.ptree-wk-ab.ptree-wk-abl>.ptree-wk-mark rect{fill:var(--critical);stroke:none}.ptree-table td.ptree-wk-ab>.ptree-wk-mark.ptree-wk-first{animation:wkGlow 2s ease-in-out infinite}@keyframes wkGlow{0%,to{filter:drop-shadow(0 0 1.5px color-mix(in srgb,var(--st-hp) 55%,transparent))}50%{filter:drop-shadow(0 0 6px var(--st-hp))}}@media(prefers-reduced-motion:reduce){.ptree-table td.ptree-wk-ab>.ptree-wk-mark.ptree-wk-first{animation:none;filter:drop-shadow(0 0 4px var(--st-hp))}}.ptree-table td.ptree-wk-out{background-image:repeating-linear-gradient(45deg,var(--line-strong) 0 1.5px,transparent 1.5px 6px)}.ptree-table td.ptree-wk-out.ptree-wk-outfig{background-image:repeating-linear-gradient(45deg,color-mix(in srgb,var(--warning) 35%,transparent) 0 2px,transparent 2px 7px)}.ptree-table td.ptree-wk-ring{outline:2px solid var(--warn-ink);outline-offset:-2px}.ptree-table td.ptree-wk-pdone{box-shadow:inset 0 -4px 0 var(--good-ink)}.ptree-table td.ptree-wk-ab{position:relative;isolation:isolate}.ptree-table td.ptree-wk-ab:after{content:"";position:absolute;inset-inline:0;top:50%;height:10px;margin-top:-5px;z-index:-1;background:var(--st-hp);pointer-events:none}.ptree-table td.ptree-wk-ab.ptree-wk-abl:after{background:var(--critical)}.ptree-table td.ptree-wk-abs:after{inset-inline-start:6px}.ptree-table td.ptree-wk-abe:after{inset-inline-end:6px}.ptree-table td.ptree-wk-star.ptree-wk-ab:after{content:none}.ptree-table td.ptree-wk-ab.ptree-wk-act:after,.ptree-table td.ptree-wk-ab.ptree-wk-zero:after,.ptree-table td.ptree-wk-ab.ptree-wk-pl:after{opacity:.3}.sch-lg-sw.pact{width:22px;height:12px;align-self:center;border:1.5px solid var(--st-planned);border-radius:0;background:linear-gradient(var(--st-hp),var(--st-hp)) center / calc(100% - 4px) 6px no-repeat,color-mix(in srgb,var(--st-planned) 20%,transparent)}.sch-lg-sw.pdone{height:5px;background:var(--good-ink);border-radius:var(--r2);align-self:center}.ptree-lgout{color:var(--warn-text)}.check-item{display:flex;gap:10px;align-items:baseline;justify-content:space-between}.check-item .check-text{min-width:0;overflow-wrap:anywhere}.check-item .check-show{flex:none;white-space:nowrap;font-weight:600;min-height:32px}@media(max-width:639px){.check-item{flex-direction:column;align-items:stretch;gap:0}.check-item .check-show{min-height:40px;min-width:40px;text-align:left;align-self:flex-start}.check-item .check-acts{flex-wrap:wrap}}.check-item,.sheet-warn-list li.check-item{padding:4px 0}@media(min-width:1024px){.ptree-table.ptree-hasweeks.pf-fold-1{--o-menu: var(--o-start)}.ptree-table.ptree-hasweeks.pf-fold-2{--o-menu: var(--o-pl)}.ptree-table.ptree-hasweeks.pf-fold-3{--o-menu: var(--o-act)}.ptree-table.ptree-hasweeks.pf-fold-4{--o-menu: var(--o-qty)}.ptree-table.ptree-hasweeks:is(.pf-fold-1,.pf-fold-2,.pf-fold-3,.pf-fold-4) :is(td,th):is(.pf-start,.pf-finish,.pf-wt,.pf-owner,.pf-remark),.ptree-table.ptree-hasweeks:is(.pf-fold-2,.pf-fold-3,.pf-fold-4) :is(td,th).pf-pl,.ptree-table.ptree-hasweeks:is(.pf-fold-3,.pf-fold-4) :is(td,th).pf-act,.ptree-table.ptree-hasweeks.pf-fold-4 :is(td,th):is(.pf-qty,.pf-unit,.pf-done){display:none}.ptree-table.ptree-hasweeks.pf-f-qty :is(td,th).pf-qty,.ptree-table.ptree-hasweeks.pf-f-unit :is(td,th).pf-unit,.ptree-table.ptree-hasweeks.pf-f-done :is(td,th).pf-done,.ptree-table.ptree-hasweeks.pf-f-act :is(td,th).pf-act,.ptree-table.ptree-hasweeks.pf-f-pl :is(td,th).pf-pl,.ptree-table.ptree-hasweeks.pf-f-start :is(td,th).pf-start,.ptree-table.ptree-hasweeks.pf-f-finish :is(td,th).pf-finish,.ptree-table.ptree-hasweeks.pf-f-wt :is(td,th).pf-wt,.ptree-table.ptree-hasweeks.pf-f-owner :is(td,th).pf-owner,.ptree-table.ptree-hasweeks.pf-f-remark :is(td,th).pf-remark{display:none}}.pf-splitwrap{position:relative}.ptree-full .pf-splitwrap{flex:1;min-height:0;display:flex;flex-direction:column}.pf-split{position:absolute;z-index:6;width:16px;margin-inline-start:-9px;cursor:col-resize;touch-action:none;display:flex;justify-content:center}.pf-split:before{content:"";width:2px;height:100%;background:var(--line-strong);transition:background .12s,width .12s}.pf-split:hover:before,.pf-split:focus-visible:before,.pf-split.on:before{width:3px;background:var(--accent)}.pf-split:focus-visible{outline:none}.pf-split-grip{position:absolute;top:10px;width:14px;height:26px;border:1px solid var(--line-strong);border-radius:var(--r7);background:var(--surface);color:var(--ink-2);font-size:14px;line-height:24px;text-align:center;font-weight:700;pointer-events:none;transform:translate(-8px);transition:border-color .12s,color .12s}.pf-split:hover .pf-split-grip,.pf-split:focus-visible .pf-split-grip,.pf-split.on .pf-split-grip{border-color:var(--accent);color:var(--accent)}.check-item .check-acts{flex:none;display:flex;gap:8px;align-items:center;padding-inline-end:8px}.ptree-table th.ptree-band{text-align:start;padding:2px 6px;font-size:.7rem;white-space:nowrap;overflow:visible;border-inline-start:1px solid var(--line);height:22px;box-sizing:border-box}.ptree-table .ptree-band-t{position:sticky;inset-inline-start:calc(var(--o-menu, 0px) + var(--w-menu, 0px) + 8px);display:inline-block;font-weight:700}.ptree-table .ptree-wk-grp{border-inline-start:2px solid var(--line-strong)}@media(max-width:640px){.ptree-table tr.pf-bandrow{display:none}}@media(min-width:1024px){.ptree-table.ptree-hasweeks th.ptree-band-lead{position:sticky;inset-inline-start:0;z-index:4;background:var(--surface)}.ptree-table.ptree-hasweeks thead tr.pf-bandrow th{top:0;height:22px}.ptree-table.ptree-banded thead tr:not(.pf-bandrow) th{top:22px}}@media(min-width:641px)and (max-width:1023px){.ptree-table.ptree-hasweeks th.ptree-band-lead{position:sticky;inset-inline-start:0;z-index:2;background:var(--surface)}}.ptree-table th.ptree-wk .tiny{white-space:normal;overflow-wrap:normal;line-height:1.1}.ptree-hasweeks .add-en{position:relative}.ptree-hasweeks .add-en:after{content:"";position:absolute;inset:-6px -4px}.ptree-hasweeks .pf-title:has(.add-en){position:relative;z-index:1;padding-block:6px;margin-block:-6px}@media(max-width:640px){.ptree-hasweeks .add-en:after{inset:-3px}}@media(min-width:1024px){.ptree-table.ptree-hasweeks.pf-noqty{--w-done: 116px;--w-qty: 0px;--w-unit: 0px}.ptree-table.ptree-hasweeks.pf-noqty :is(td,th):is(.pf-qty,.pf-unit):not(.pf-qtydone){display:none}}@media(min-width:1440px){.ptree-table.ptree-hasweeks.pf-noqty{--w-done: 168px}}@media(min-width:1024px){.ptree-table.ptree-hasweeks.pf-h-unit{--w-unit: 0px}.ptree-table.ptree-hasweeks.pf-h-done{--w-done: 0px}.ptree-table.ptree-hasweeks.pf-h-act{--w-act: 0px}.ptree-table.ptree-hasweeks.pf-h-pl{--w-pl: 0px}.ptree-table.ptree-hasweeks.pf-h-start{--w-start: 0px}.ptree-table.ptree-hasweeks.pf-h-finish{--w-fin: 0px}.ptree-table.ptree-hasweeks.pf-h-unit :is(td,th).pf-unit,.ptree-table.ptree-hasweeks.pf-h-done :is(td,th).pf-done,.ptree-table.ptree-hasweeks.pf-h-act :is(td,th).pf-act,.ptree-table.ptree-hasweeks.pf-h-pl :is(td,th).pf-pl,.ptree-table.ptree-hasweeks.pf-h-start :is(td,th).pf-start:not(.pf-startfin),.ptree-table.ptree-hasweeks.pf-h-finish :is(td,th).pf-finish,.ptree-table.ptree-hasweeks.pf-h-done.pf-noqty td.pf-qtydone,.ptree-table.ptree-hasweeks.pf-h-start.pf-h-finish td.pf-startfin{display:none}}.ptree-table tr.ptree-flate td.pf-finish,.ptree-table tr.ptree-flate td.pf-finish :is(.pdate,.pdate-ro,.pdate-cell,.pdate-edit,.pdate-yr,.muted){color:var(--st-issue)}.col-order{display:flex;align-items:center;gap:4px;padding:2px 8px;cursor:grab;border-block-start:1px solid transparent;border-block-end:1px solid transparent}.col-order.over{border-block-start-color:var(--accent)}.col-order.drag{opacity:.5}.col-order-grip{color:var(--ink-2);-webkit-user-select:none;user-select:none}.col-order-name{flex:1;min-width:0;font-size:.85rem}.col-order .btn,.col-order .btn.btn-sm{min-height:32px;min-width:32px;padding:0 6px;line-height:1}.ptree-table td.ptree-wk{position:relative}.ptree-table button.ptree-wk-gone{all:unset;position:absolute;top:50%;left:4px;transform:translateY(-50%);z-index:auto;white-space:nowrap;cursor:pointer;font-size:.75rem;color:var(--ink-2)}.ptree-table button.ptree-wk-gone.after{left:auto;right:4px}.ptree-table button.ptree-wk-gone:hover{text-decoration:underline}.ptree-table button.ptree-wk-gone:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ptree-table button.ptree-wk-gone:disabled{cursor:default;text-decoration:none}.ptree-table .ptree-plan{min-width:2ch;max-width:7em;padding-inline:2px;text-align:start;border-color:transparent;background:transparent;box-shadow:none}.ptree-table .ptree-plan:hover{border-color:var(--line-strong)}.ptree-table .ptree-plan:focus{border-color:var(--accent, var(--line-strong));background:var(--surface)}.ptree-table .ptree-planmark{margin-inline-start:4px;display:inline-flex;vertical-align:middle}.ptree-table .ptree-plan{appearance:textfield;-moz-appearance:textfield}.ptree-table .ptree-plan::-webkit-outer-spin-button,.ptree-table .ptree-plan::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ptree-countchip{margin-inline-start:8px;padding:0 6px;border:1px solid var(--line);border-radius:var(--r8);white-space:nowrap}.ptree-lit{background:color-mix(in srgb,var(--lime) 28%,transparent);border-radius:var(--r6)}.ptree-countfig{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.25}.ptree-countnote{white-space:nowrap}@media(max-width:640px){.ptree-countfig{align-items:flex-start;max-width:100%;min-width:0;display:flex}.ptree-countchip{display:none}.ptree-countfig .menu-button,.ptree-countfig .ptree-countnote{max-width:100%;white-space:normal;text-align:start;overflow-wrap:anywhere}}.done-tick{width:44px;height:44px;margin:0;cursor:pointer;accent-color:var(--accent);vertical-align:middle}.done-pop{position:relative;display:inline-block}.done-chip{min-height:44px;padding:0 8px;background:transparent;border:0;color:var(--good-ink);font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}.done-sheet{position:absolute;z-index:30;inset-inline-end:0;top:100%;min-width:240px;padding:12px;display:flex;flex-direction:column;gap:10px;text-align:start;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r10);box-shadow:var(--shadow)}.done-period{font-size:.9em}.ptree-table td.pf-qtydone .done-period{display:block;white-space:normal;text-align:start;line-height:1.25;color:var(--muted)}.done-sheet .done-date{min-height:44px}.done-sheet .done-undo{align-self:flex-start;min-height:44px;background:transparent;border-color:transparent;color:var(--ink-2)}@media(max-width:640px){.done-sheet{position:fixed;inset-inline:0;bottom:0;top:auto;border-radius:var(--r14) var(--r14) 0 0;padding:16px 16px 24px}}.count-warn{margin:0;padding:8px 12px;border:1px solid var(--warn-line, var(--line-strong));border-radius:var(--r8);background:var(--warn-bg, var(--lime-soft));color:var(--warn-ink, inherit);font-weight:600}.ptree-state,.ptree-phoneplan{display:none}.ptree-table .ptree-phase .ptree-state,.ptree-table .ptree-task .ptree-state,.ptree-table .ptree-total .ptree-state{display:inline;margin-inline-end:3px;font-size:.8em}.ptree-table .ptree-phase .ptree-state-word,.ptree-table .ptree-task .ptree-state-word,.ptree-table .ptree-total .ptree-state-word{display:none}@media(max-width:640px){.ptree-phoneplan{display:inline;font-weight:400;color:var(--muted)}.ptree-phoneplan.ptree-phoneplan--behind{color:var(--warn-text)}.ptree-state{display:inline;margin-inline-end:3px;font-size:.8em}.ptree-table .ptree-row.ptree-statewarn>td.ptree-act{color:var(--warn-ink)}}@media(min-width:641px){.ptree-table .ptree-wide>td.ptree-name{max-width:0}.ptree-wide .ptree-namebox{min-width:0}.ptree-wide .ptree-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal}.ptree-wide .ptree-title strong{display:block;overflow:hidden;text-overflow:ellipsis}.ptree-wide .ptree-sub{flex:none;padding:0 6px;border:1px solid var(--line);border-radius:var(--r8);font-weight:400}}@media(max-width:640px){.ptree-table .ptree-row.ptree-wide>td:nth-child(4){display:none}.ptree-table .ptree-row.ptree-wide>td.ptree-last:has(.btn){display:block}}.done-hit{display:inline-flex;align-items:center;justify-content:center;padding:12px;cursor:pointer;vertical-align:middle}.done-tick{appearance:none;-webkit-appearance:none;box-sizing:border-box;position:relative;width:20px;height:20px;margin:0;padding:0;border:2px solid var(--line-strong);border-radius:var(--r4);background:var(--surface);cursor:pointer;vertical-align:middle}.done-hit:hover .done-tick,.done-tick:focus-visible{border-color:var(--accent)}.done-tick:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.done-tick:checked{background:var(--accent);border-color:var(--accent)}.done-tick:checked:after{content:"";position:absolute;inset-inline-start:5px;top:1px;width:5px;height:10px;border:solid var(--surface);border-width:0 2px 2px 0;transform:rotate(45deg)}@media(max-width:767px){.ptree-paste{display:none}}.ptree-helprow{display:grid;grid-template-columns:1fr auto;align-items:start}.ptree-helprow>.ptree-legend{grid-column:1 / -1;grid-row:1}.ptree-toggle-link{display:none}@media(max-width:640px){.ptree-toggle-all{display:none}.ptree-toggle-link{display:inline-flex;align-items:center;min-height:40px;padding-inline:8px;white-space:nowrap}}.ptree-fixmark{display:none}.plan-fix{cursor:pointer;font:inherit;border:0;background:none;padding:0;text-align:start}.badge.plan-fix{padding:2px 8px;border:1px solid var(--warn-line, var(--line-strong));background:var(--warn-bg, var(--lime-soft));color:var(--warn-ink, inherit)}.plan-fix:hover,.plan-fix:focus-visible{text-decoration:underline}@media(max-width:640px){.ptree-act-plain{display:none}.ptree-fixmark{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;border:0;background:none;font:inherit;color:var(--warn-ink);cursor:pointer}}.ptree-table td.ptree-last{text-align:end}.ptree-last .work-menu,.ptree-docchip{margin-inline-start:6px}.doc-chip-open{color:var(--ink-2);font-weight:500}.done-plain{color:var(--good-ink);font-weight:600}.doc-sheet{min-width:260px}.doc-sheet-up{top:auto;bottom:100%}.doc-sheet-close{display:none}.doc-step{gap:4px}.doc-step-row{display:flex;align-items:center;gap:8px}.doc-step-row .date-field{flex:1 1 auto}.doc-step-btn{min-height:44px;min-width:44px;white-space:nowrap}.doc-future{color:var(--bad-ink);font-size:13px}.ptree-info{display:block;max-width:18em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2);font-size:12px}.ptree-sub .ptree-dot{display:none}.ptree-est{margin-inline-start:1px;color:var(--ink-2)}.ptree-sub:has(.ptree-info){min-width:0}@media(max-width:640px){.ptree-docchip{display:inline-block}.ptree-sub:has(.ptree-info){grid-row:3;grid-column:2 / -1;min-width:0}.ptree-info{max-width:100%}.ptree-table .ptree-row:has(.ptree-info)>td.ptree-last{grid-row:4}.doc-sheet{min-width:0;z-index:1350;padding-top:52px}.doc-sheet-close{display:inline-flex;align-items:center;justify-content:center;position:absolute;top:6px;inset-inline-end:6px;width:44px;height:44px;padding:0;font-size:26px;line-height:1;background:transparent;border:0;color:var(--ink-2);cursor:pointer}}@media(min-width:641px){.ptree-namebox:has(.ptree-info){flex-wrap:wrap}.ptree-sub:has(.ptree-info){flex:0 0 100%;padding-inline-start:32px}}.ptree-place.ptree-sec .ptree-title,.ptree-place.ptree-sec .ptree-title a,.ptree-place.ptree-sec .ptree-fig{color:var(--ink-2)}.ptree-place.ptree-sec .ptree-bar{visibility:hidden}@media(max-width:640px){.ptree-table .ptree-chain .ptree-sub{grid-row:3;grid-column:2 / -1;white-space:normal;min-width:0}.ptree-table .ptree-chain>td.ptree-last{grid-row:4}}.ptree-addroute td{padding-block:2px;border-bottom:0}.ptree-addroute-btn{font-size:13px;min-height:32px}@media(max-width:640px){.ptree-addroute-btn{display:flex;align-items:center;width:100%;min-height:44px;text-align:start}}.ptree-lit>td{animation:ptree-lit 2s ease-out}@keyframes ptree-lit{0%{background:var(--lime-soft)}to{background:transparent}}@media(prefers-reduced-motion:reduce){.ptree-lit>td{animation:none;background:var(--lime-soft)}}@media(max-width:640px){.ptree-table .ptree-row:has(>td.ptree-last .menu-button){grid-template-columns:40px auto auto minmax(64px,1fr) auto 40px}.ptree-table .ptree-row:has(>td.ptree-last .menu-button) .ptree-title{grid-column:2 / 6}.ptree-table .ptree-row>td.ptree-last:has(.menu-button){display:block;grid-row:1 / span 2;grid-column:6;text-align:center}.ptree-table .ptree-row>td.ptree-last:has(.menu-button)>.menu-button{display:block}.ptree-table .ptree-row>td.ptree-last:has(.menu-button) .work-menu{width:40px;min-height:40px;margin:0;padding:0;font-size:18px}}.ptree-place:not(.ptree-sec) :is(.ptree-title,.pf-title) a{color:var(--ink);text-decoration:none}.ptree-place:not(.ptree-sec) :is(.ptree-title,.pf-title) a:is(:hover,:focus-visible){text-decoration:underline}.ptree-table td.pf-done .num-input{width:100%;min-width:0;box-sizing:border-box;text-align:end}.fig-btn{display:block;width:100%;min-height:40px;padding:0 2px;background:transparent;border:0;color:inherit;font:inherit;text-align:end;cursor:pointer;font-variant-numeric:tabular-nums}.fig-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.fig-plain{display:block;min-height:40px;line-height:40px;text-align:end}.ptree-table td.pf-done .fig-input,.ptree-table td.pf-qty .fig-input{width:100%;min-width:0;box-sizing:border-box;min-height:40px;text-align:end}@media(hover:hover)and (pointer:fine){.fig-btn:hover{text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}}.fig-btn-phone{display:inline-block;width:auto;white-space:nowrap;font-size:13px;padding:0;text-align:start;margin-block:-10px}.qty-sheet-wrap{position:fixed;inset:0;z-index:1100}.qty-sheet-backdrop{position:absolute;inset:0;background:#0508058c}.qty-sheet{position:absolute;inset-inline:0;bottom:0;max-height:85dvh;display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border-radius:var(--r14) var(--r14) 0 0;box-shadow:0 -8px 30px #00000040;text-align:start}@media(min-width:640px){.qty-sheet{inset-inline:auto;inset-inline-end:16px;width:360px}}.qty-sheet-head{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 16px;border-bottom:1px solid var(--line);min-height:44px}.qty-sheet-title{flex:1;min-width:0;font-size:14px;font-weight:600;overflow-wrap:anywhere}.qty-sheet-close{flex:none;width:40px;height:40px;min-height:40px;padding:0}.qty-sheet-body{overflow-y:auto;padding:8px 16px}.qty-sheet-field{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;border-bottom:1px solid var(--line)}.qty-sheet-field>span:first-child{flex:none;color:var(--ink-2);font-size:.85rem}.qty-sheet-pair{display:flex;gap:6px;justify-content:flex-end}.qty-sheet .cell-input{min-height:44px}.qty-sheet .num-input{width:96px;text-align:end}.qty-sheet .unit-input{width:72px}.qty-sheet-foot{padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface-2)}.qty-sheet-foot .btn{min-height:44px;width:100%}.ptree-table td:is(.pf-qtydone,.pf-done) .done-chip,.ptree-table td:is(.pf-qtydone,.pf-done) .done-plain{display:inline-block;min-height:40px;line-height:40px;padding:0 2px;text-align:end}.ptree-table td:is(.pf-qtydone,.pf-done) .done-chip{min-height:40px;padding:0 2px}.ptree-draw{color:var(--accent);font-size:.85em;text-decoration:none;white-space:nowrap}.ptree-draw:is(:hover,:focus-visible){text-decoration:underline}@media(max-width:640px){.ptree-draw{display:inline-flex;align-items:center;min-height:40px}}@media(max-width:640px){.ptree-table .ptree-activity>td.ptree-last:has(.menu-button){grid-row:1}.ptree-table .ptree-activity .ptree-fold{grid-row:1}.ptree-table .ptree-activity .ptree-fig{grid-row:2;grid-column:2;white-space:nowrap}.ptree-table .ptree-activity>td.ptree-bar{grid-row:2;grid-column:3 / 5;min-width:64px}.ptree-table .ptree-activity>td.ptree-act{grid-row:2;grid-column:5 / -1;white-space:nowrap}.ptree-table .ptree-activity .ptree-state-word,.ptree-table .ptree-activity .ptree-fixarrow,.ptree-table .ptree-activity .ptree-sub{display:none}.ptree-table .ptree-activity .ptree-sub:has(.ptree-adj){display:block;grid-row:3;grid-column:2 / -1;white-space:normal;min-width:0}}@media(max-width:640px){.ptree-table tr.ptree-row{grid-template-columns:40px auto auto minmax(60px,1fr) auto}.ptree-table tr.ptree-row>td.ptree-act{white-space:nowrap}.ptree-table tr.ptree-row>td.ptree-bar,.ptree-table tr.ptree-activity>td.ptree-bar{min-width:60px}.ptree-table tr.ptree-phase .pbar{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}}.pdate-name-flag,.ptree-iconlg{display:none}@media(max-width:640px){.ptree-table .ptree-row .ptree-state-word,.ptree-table .ptree-row .ptree-fixarrow{display:none}.ptree-iconlg{display:block;margin:0;padding:2px 0 6px;font-size:11px;line-height:1.4}.ptree-iconlg-i{white-space:nowrap}.pdate-name-flag{display:inline-block;vertical-align:middle;margin-inline-start:6px;position:relative}.pdate-name-flag .pdate-flag{min-height:24px;min-width:24px;justify-content:center;margin:0;padding:0 6px}.pdate-name-flag .pdate-flag-btn:after{content:"";position:absolute;left:50%;top:50%;width:40px;height:40px;transform:translate(-50%,-50%)}.ptree-phase .ptree-sub .pdate-phone-flag{display:none}}.row-sheet-item,.row-sheet-h{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;box-sizing:border-box;padding:0 2px;text-align:start}.row-sheet-item{background:transparent;border:0;border-bottom:1px solid var(--line);color:inherit;font:inherit;cursor:pointer}.row-sheet-item:disabled{color:var(--ink-2);cursor:default;line-height:1.35;padding-block:8px}.row-sheet-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.row-sheet-h{color:var(--ink-2);font-size:.8rem;font-weight:600;border-bottom:1px solid var(--line)}.row-sheet-tick{flex:none;width:1.2em;color:var(--accent)}.row-sheet-main{color:var(--accent);font-weight:600}.qty-sheet.row-sheet{inset-inline:0;width:auto}@media(min-width:641px){.qty-sheet.row-sheet{inset-inline:auto;inset-inline-end:16px;width:360px}}.qty-sheet.row-sheet:focus{outline:none}@media(max-width:640px){.ptree-table .ptree-row.ptree-tap{cursor:pointer}.ptree-table .ptree-row.ptree-tap:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ptree-table .ptree-row.ptree-rowtoggle>td{height:44px}.ptree-rowmore{margin-inline-start:auto;min-width:44px;min-height:44px;border:0;background:none;color:var(--ink-2);font-size:18px;line-height:1;cursor:pointer}}.ptree-rowmore{display:none}@media(max-width:640px){.ptree-rowmore{display:inline-flex;align-items:center;justify-content:center}}.row-sheet-group{justify-content:space-between}.row-sheet-back{font-weight:600}.row-sheet-sep{margin-top:8px;border-top:1px solid var(--line-strong)}.ptree-sub:has(.ptree-ms-date){display:none}@media(max-width:640px){.ptree-table .ptree-row .ptree-sub:has(.ptree-ms-date){display:block;grid-row:2;grid-column:2 / 5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media(max-width:640px){.ptree-table td:is(.pf-qtydone,.pf-done) .done-chip-nc{white-space:normal;line-height:1.25;max-width:8.5em;padding-block:4px}}.pf-state{font-size:.72rem;line-height:1.3;color:var(--muted)}.pf-state[data-tone=slight]{color:var(--warn-text);font-weight:600}.pf-state[data-tone=behind]{color:var(--bad-ink);font-weight:600}@media(max-width:640px){.pf-state{display:none}}.row-sheet-fields{display:flex;flex-direction:column;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.row-sheet-field{display:flex;flex-direction:column;gap:2px}.row-sheet-input{box-sizing:border-box;width:100%;height:40px;padding:0 10px;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r6)}.row-sheet-input:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.ptree-table .ptree-stline{margin-inline-start:26px}@media(max-width:640px){.pm-only-fig{display:inline-block;min-height:32px;line-height:32px}}.menu-heading{text-align:left;font-size:.8rem;font-weight:700;color:var(--ink-3);padding:6px 10px 2px}.menu-heading.menu-group:not(:first-child){border-top:1px solid var(--line);margin-top:4px;padding-top:8px}@media(max-width:767px){.menu-heading{padding-bottom:4px}}.menu-item-group{display:flex;justify-content:space-between;gap:8px}.menu-item-back{font-weight:600}.pvb-warn-list .pvb-warnfix{margin:0 0 4px}@media(max-width:640px){.pvb-lines,.pvb-lines tbody{display:block;width:100%}.pvb-lines thead{display:none}.pvb-lines tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}.table.pvb-lines td{display:block;padding:1px 0;line-height:1.35;border:0;min-width:0;min-height:0;height:auto}.pvb-lines .pl-date{grid-column:1;grid-row:1}.pvb-lines .pl-qty{grid-column:2;grid-row:1;font-weight:700}.pvb-lines .pl-who{display:none}.pvb-lines .pl-place{grid-column:1;grid-row:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pvb-lines .pl-end{grid-column:2;grid-row:2;text-align:right;max-width:60vw}}.pvb-lines .pl-end a{white-space:nowrap}@media(min-width:600px){.pg-views .segmented button,.sch-p2 .segmented button,.sch-zoom.segmented button,.sch-zoom .segmented button{min-height:var(--h-ctl);padding-top:0;padding-bottom:0;font-size:var(--fs-body)}.pg-views .btn-sm,.sch-p1 .btn-sm,.sch-p2 .btn-sm,.sch-right .btn-sm,.pg-views .pvb-chip,.sch-p1 .pvb-chip,.sch-p2 .pvb-chip,.sch-right .pvb-chip{min-height:var(--h-ctl);font-size:var(--fs-body)}}.pvb-outside-show{min-height:40px;display:inline-flex;align-items:center;padding:0 6px}.plan-help-row{display:flex;align-items:center;gap:8px}.plan-help-row .plan-help{flex:1 1 auto;min-width:0}.plan-collapse-all{flex:none;background:none;border:0;color:var(--ink-2);font:inherit;font-size:.8rem;cursor:pointer;padding:0 4px;min-height:30px;white-space:nowrap;text-decoration:underline dotted;text-underline-offset:3px}.plan-collapse-all:focus-visible{outline:2px solid var(--line-strong);outline-offset:2px;border-radius:var(--r4)}@media(max-width:639px){.plan-collapse-all{min-height:40px;padding:0 8px}}@media(min-width:600px){.plan-table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}}.pvb-warn-always:not(.open) .pvb-warnfix{display:none}.pvb-warn-always .pvb-warnfix{margin:0 0 4px}[data-plan-node]{scroll-margin-top:calc(var(--app-header-h) + 16px)}.plan-lit{outline:2px solid var(--lime);outline-offset:-2px;animation:plan-lit 2s ease-out}@keyframes plan-lit{to{outline-color:transparent}}@media(prefers-reduced-motion:reduce){.plan-lit{animation:none}}.sitelist{display:flex;flex-direction:column;gap:8px}.sl-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 14px}.sl-head h2{margin:0;font-size:1.1rem}.sl-search{margin-left:auto;min-width:200px;max-width:320px;flex:1 1 200px;min-height:36px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--r8);background:var(--surface);color:var(--ink)}.sl-chips{display:flex;flex-wrap:wrap;gap:6px}.sl-chip{min-height:32px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r16);background:var(--surface);color:var(--ink-2);cursor:pointer}.sl-chip.on{background:var(--accent);border-color:var(--accent);color:var(--surface)}.sl-hidden .linklike{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline;font:inherit}.sl-skel{height:34px;border-radius:var(--r6);background:var(--surface-2);animation:sl-pulse 1.2s ease-in-out infinite}@keyframes sl-pulse{50%{opacity:.5}}.sl-box{position:relative;overflow:auto;height:calc(100dvh - 230px);min-height:420px;border:1px solid var(--line);border-radius:var(--r8);background:var(--surface)}.sl-row{display:grid;align-items:center;height:34px;border-bottom:1px solid var(--line);color:var(--ink);font-size:.88rem}.sl-row>span{padding:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--surface);height:33px;line-height:33px}.sl-row .f1{position:sticky;left:0;z-index:1}.sl-row .f2{position:sticky;left:124px;z-index:1;border-right:1px solid var(--line-strong)}.sl-row .num{text-align:right;font-variant-numeric:tabular-nums}.sl-row .mono{font-family:ui-monospace,monospace}.sl-out{background:var(--surface-2)!important}.sl-hrow{position:sticky;top:0;z-index:3}.sl-th{height:33px;padding:0 8px;border:0;background:var(--surface-2);color:var(--ink-2);text-align:left;cursor:pointer;font:inherit;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sl-th.f1{position:sticky;left:0;z-index:4}.sl-th.f2{position:sticky;left:124px;z-index:4;border-right:1px solid var(--line-strong)}.sl-cards{display:flex;flex-direction:column;gap:8px}.sl-card{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r8);background:var(--surface);color:var(--ink)}@media(max-width:640px){.sl-search{max-width:none}.sl-chip{min-height:40px}}.sl-edit{width:100%;height:33px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.sl-edit:hover,.sl-edit:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sl-date.date-field{display:flex;width:100%;min-width:0;min-height:30px;height:30px;padding:0 4px;border-color:var(--accent);font-size:.88rem}.sl-mark{min-height:40px;margin-left:8px}.sl-hwrap{position:sticky;top:0;z-index:3}.sl-hwrap .sl-hrow{position:static;height:34px}.sl-hrow .sl-th{height:33px}.sl-row.sl-grow{height:28px}.sl-grow>span{height:27px;line-height:27px;background:var(--surface-2)}.sl-grow>.sl-gh{font-weight:600;color:var(--ink);text-align:center;border-left:1px solid var(--line-strong);border-right:1px solid var(--line-strong)}@media(max-width:640px){.sl-edit{min-height:40px}}.sl-row>span.sl-editing{position:relative;overflow:visible;z-index:6;padding:0 4px}.sl-coord{width:100%;box-sizing:border-box;height:30px;padding:0 6px;border:1px solid var(--accent);border-radius:var(--r6);background:var(--surface);color:var(--ink);font:inherit;font-size:.88rem;text-align:right;font-variant-numeric:tabular-nums}.sl-coord[aria-invalid=true]{border-color:var(--critical, var(--line-strong))}.sl-edit-num{text-align:right}.sl-tip{position:absolute;top:100%;right:0;min-width:190px;max-width:260px;padding:4px 8px;border:1px solid var(--warn-line);border-radius:var(--r6);background:var(--warn-bg);color:var(--warn-ink);font-size:.8rem;line-height:1.3;white-space:normal;box-shadow:0 2px 8px #0000002e}.sl-tip.bad{background:var(--surface);border-color:var(--critical, var(--line-strong));color:var(--critical, var(--ink))}.sl-add{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px;padding:10px;border:1px solid var(--accent);border-radius:var(--r8);background:var(--surface-2)}.sl-add-f{position:relative;display:flex;flex-direction:column;gap:3px;font-size:.8rem;color:var(--ink-2);min-width:110px}.sl-add-f input{min-height:36px;padding:0 8px;border:1px solid var(--line-strong);border-radius:var(--r6);background:var(--surface);color:var(--ink);font:inherit;font-size:.9rem}.sl-add-name{flex:1 1 180px}.sl-add-pos{width:110px;min-width:0}.sl-add .sl-tip{position:static;box-shadow:none}.sl-add-go{display:flex;gap:8px}.sl-lit{animation:sl-lit 1.5s ease-out}.sl-lit>span{animation:sl-lit 1.5s ease-out}@keyframes sl-lit{0%,70%{background:var(--accent-soft, var(--warn-bg))}}.sl-addbtn{min-height:36px}@media(max-width:640px){.sl-addbtn{min-height:40px}.sl-add-f,.sl-add-pos{flex:1 1 100%;width:auto}.sl-add-f input{min-height:40px}}.sl-exportbtn{min-height:36px}.sl-more{min-height:40px;min-width:40px}.sl-more-pop .menu-item{min-height:40px}.sl-row>span.sl-pl-lit{animation:sl-lit 1.5s ease-out}.sl-row>span.sl-pl-warn{outline:2px dotted var(--warn-line);outline-offset:-3px}.sl-row .f1:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.slx{display:flex;flex-direction:column;gap:8px}.slx-table{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r8);background:var(--surface);color:var(--ink)}.slx-row{display:grid;grid-template-columns:96px minmax(0,1fr) 130px auto;align-items:center;gap:8px;min-height:36px;padding:0 8px;border-top:1px solid var(--line)}.slx-row:first-child{border-top:0}.slx-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slx-mark{min-height:32px;padding:0 10px;white-space:nowrap}.slx-row:not(:has(.slx-mark)){grid-template-columns:96px minmax(0,1fr) 130px}.slx .sl-edit{height:32px}.slx .sl-search{max-width:none}.ptree-countopen{border:0;background:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-align:inherit;line-height:inherit}.ptree-countopen:hover,.ptree-countopen:focus-visible{color:var(--accent)}@media(max-width:640px){.slx-row,.slx-row:not(:has(.slx-mark)){grid-template-columns:104px minmax(0,1fr) auto;padding:4px 8px;row-gap:0}.slx-name{grid-column:2 / 4}.slx-row>[role=cell]:nth-of-type(3){grid-column:1 / 3}.slx-row .sl-edit,.slx-mark{min-height:40px}.slx-mark{grid-column:3}}@media(max-width:767px){.slx .slx-more{width:100%;min-height:44px}}.rp-steps{margin:0 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rp-list{max-height:280px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r8)}.rp-row{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 10px;cursor:pointer}.rp-row+.rp-row{border-top:1px solid var(--line)}.rp-row input{width:18px;height:18px;flex:none}.rp-all{background:var(--surface-2);font-weight:600;position:sticky;top:0}.rp-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rp-there{opacity:.6;cursor:default}.rp-copy{min-height:40px}.rp-note{margin:0}.rp-foot{display:flex;flex-direction:column;gap:6px;width:100%;padding:8px 0}.rp-sentence,.rp-error{margin:0;font-size:14px}.rp-error{color:var(--bad-ink)}.rp-buttons{display:flex;flex-direction:row-reverse;justify-content:flex-start;gap:8px}.modal:has(.rp-form) .modal-foot{height:auto}@media(max-width:640px){.rp-buttons{flex-direction:column}.rp-buttons .btn{width:100%;min-height:40px}}.lr-form{display:flex;flex-direction:column;gap:10px;min-width:0}.lr-search{width:100%}.lr-list{display:flex;flex-direction:column;gap:4px;max-height:46vh;overflow-y:auto;overflow-x:hidden}.lr-row{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r8);cursor:pointer;min-width:0}.lr-row.lr-on{border-color:var(--accent);background:var(--lime-soft);color:var(--lime-soft-ink)}.lr-row.lr-taken{opacity:.6;cursor:not-allowed}.lr-row input{flex:none;accent-color:var(--accent)}.lr-text{display:flex;flex-direction:column;min-width:0;flex:1}.lr-ends{font-weight:600;overflow-wrap:anywhere}.lr-sub,.lr-by{font-size:12px;overflow-wrap:anywhere}.lr-best{margin-inline-start:8px;padding:1px 6px;border-radius:var(--r-pill);font-size:11px;font-weight:600;background:var(--lime-soft);color:var(--lime-soft-ink);white-space:nowrap}.lr-empty,.lr-note{margin:0}.lr-foot{display:flex;flex-direction:column;gap:6px;width:100%;padding:8px 0}.lr-error{margin:0;font-size:14px;color:var(--bad-ink)}.lr-buttons{display:flex;flex-direction:row-reverse;justify-content:flex-start;gap:8px}.modal:has(.lr-foot) .modal-foot{height:auto}.ptree-linked{color:var(--ink-3)}@media(max-width:640px){.lr-buttons{flex-direction:column}.lr-buttons .btn{width:100%;min-height:44px}.lr-list{max-height:50vh}}@media(max-width:640px){.modal:has(.lr-form) .modal-head{min-height:44px;padding:0 4px 0 14px}.modal:has(.lr-form) .modal-head h2{font-size:14px;font-weight:600;overflow-wrap:anywhere}.modal:has(.lr-form) .modal-head .btn{flex:none;width:40px;min-width:40px;min-height:40px}}.cb-form{display:flex;flex-direction:column;gap:10px;min-width:0}.cb-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.cb-line{display:flex;align-items:baseline;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r8);min-width:0;flex-wrap:wrap}.cb-code{flex:none;font-variant-numeric:tabular-nums}.cb-name{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere}.cb-dates{flex:none;font-size:13px}.cb-result{margin:0;font-weight:600;overflow-wrap:anywhere}.cb-foot{display:flex;flex-direction:column;gap:6px;width:100%;padding:8px 0}.cb-error{margin:0;font-size:14px;color:var(--bad-ink)}.cb-buttons{display:flex;flex-direction:row-reverse;justify-content:flex-start;gap:8px}.modal:has(.cb-foot) .modal-foot{height:auto}@media(max-width:640px){.cb-buttons{flex-direction:column}.cb-buttons .btn{width:100%;min-height:44px}.modal:has(.cb-form) .modal-head{min-height:44px;padding:0 4px 0 14px}.modal:has(.cb-form) .modal-head h2{font-size:14px;font-weight:600;overflow-wrap:anywhere}.modal:has(.cb-form) .modal-head .btn{flex:none;width:40px;min-width:40px;min-height:40px}}@media(min-width:641px){.ptree-title:has(.work-name,.work-code){display:inline-flex;align-items:baseline;gap:2px;flex-wrap:nowrap;flex:1 1 auto;min-width:9em}.ptree-table:has(.work-name) .ptree-name{min-width:260px}}.ptree-title strong{font-weight:inherit;min-width:0}.work-code{margin-inline-end:4px;min-width:2.2em;flex:none}.work-name{display:inline-block;text-align:start;max-width:100%;min-height:0;padding:1px 4px;font-size:inherit}.work-name .edit-text-value{display:inline;white-space:normal;overflow-wrap:break-word}@media(min-width:641px){.ptree-last .menu-button{display:inline-block;vertical-align:middle}}.ptree-phase .work-name{font-weight:600}.work-input{width:min(28em,100%);min-width:8em}.ptree-draft>td{background:color-mix(in srgb,var(--accent, currentColor) 8%,transparent)}.work-menu{margin-inline-start:4px}.work-keys{margin:0 0 6px}.work-empty{padding:12px 8px}@media(min-width:641px){.ptree-table:has(.work-name) .ptree-bar{min-width:90px;width:18%}.ptree-fig .target-edit,.ptree-fig .target-cell{flex-wrap:nowrap;justify-content:flex-end}.ptree-fig:has(.target-edit,.target-cell){min-width:190px}}@media(max-width:640px){.work-input{grid-row:1;grid-column:2 / -1;width:100%}.work-name{min-height:40px}.ptree-fig .target-cell{gap:4px;font-size:13px}.ptree-fig .target-cell{flex-wrap:wrap;row-gap:2px}.ptree-fig .target-cell .num-input{flex:none;width:56px}}.paste-text{width:100%;min-height:110px;max-height:40vh;font:inherit;resize:vertical;box-sizing:border-box}.paste-preview{list-style:none;margin:0;padding:6px 8px;max-height:38vh;overflow:auto;border:1px solid var(--border, currentColor);border-radius:var(--r6)}.paste-preview li{padding-block:2px;overflow-wrap:anywhere}.paste-phase{font-weight:600}.work-empty .btn{margin-inline-end:8px}@media(max-width:640px){.paste-plan{min-width:0}.modal:has(.paste-plan){width:100%;max-width:100%}.modal:has(.paste-plan) .btn{min-height:40px}}.ptree-addline{white-space:nowrap}@media(max-width:640px){.ptree .card-head{flex-wrap:wrap}}.work-dur{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.field .work-dur input.work-dur-num:not([type=checkbox]):not([type=radio]){width:6em;min-height:44px}.work-dur-unit button{min-height:44px}.work-est{display:flex;align-items:center;gap:8px;min-height:44px}.work-est input{width:20px;height:20px}.mm-btn{background:none;border:0;padding:2px 0;min-height:0;font:inherit;cursor:pointer;text-align:inherit;white-space:nowrap}.mm-btn:hover{text-decoration:underline}.mm-btn:focus-visible{outline:2px solid var(--ink-3);outline-offset:2px;border-radius:var(--r3)}.mm-note.mm-quiet{color:var(--ink-3)}.mm-note.mm-warn{color:var(--warn-text);font-weight:600}.mm-filterrow{display:flex;align-items:center;gap:8px;margin:4px 0 8px}.mm-chip{border:1px solid var(--warn-line);background:var(--warn-bg);color:var(--warn-ink);border-radius:var(--r-pill);padding:4px 12px;min-height:32px;font:inherit;font-size:.85rem;cursor:pointer}.mm-chip.on{border-color:var(--warn-ink);font-weight:600}@media(max-width:640px){.mm-chip,.mm-btn{min-height:40px}}@media(max-width:640px){.ptree-fig:has(.mm-alone){grid-column:2 / -1;text-align:start;white-space:normal}.ptree-table .ptree-row:has(.mm-alone)>td.ptree-bar{grid-row:3;grid-column:2 / 5}.ptree-table .ptree-row:has(.mm-alone)>td.ptree-act{grid-row:3;grid-column:5}.ptree-row:has(.mm-alone) .ptree-sub{display:none}.mm-alone{align-items:flex-start}.mm-alone .mm-btn{white-space:normal;text-align:start}}.pstrip-plansetup{background:none;border:0;padding:0 2px;min-height:40px;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.pstrip-plansetup:hover{color:var(--ink)}.pstrip-finish-wait{min-height:1.4em;align-items:center}.pstrip-finish-wait>.pstrip-skel.pstrip-skel-fin{width:40%;height:1em}@media(max-width:599px){.pstrip-list .pstrip-plansetup{display:block;padding-left:0}}.pstrip-finish-wait{min-height:40px}@media(max-width:599px){.pstrip.pstrip-box,.progress-tab .pstrip.pstrip-box{padding:6px 12px;gap:0}.pstrip.pstrip-box .pstrip-main{flex-wrap:nowrap;gap:0 8px}.pstrip.pstrip-box .pstrip-main .pstrip-done{font-size:1.3rem;white-space:nowrap}.pstrip.pstrip-box .pstrip-main .pstrip-planned{font-size:.85rem;white-space:nowrap}.pstrip.pstrip-box .pstrip-main .pstrip-badge{font-size:.8rem;padding:1px 6px;white-space:nowrap}.pstrip.pstrip-box .pstrip-finish{flex-wrap:nowrap;gap:0 8px}.pstrip.pstrip-box .pstrip-finish .pstrip-pill{white-space:nowrap;margin-left:auto}.pstrip.pstrip-box:has(>.pstrip-skels){min-height:80px}}.pstrip-box .pstrip-finish-wait{flex:1 1 100%;min-height:40px}@media(max-width:599px){.pstrip.pstrip-box:has(>.pstrip-finish){min-height:76px}}.pstrip-wrap{position:relative}.pstrip-wrap .pstrip.pstrip-box.pstrip-line{flex-wrap:wrap;padding-block:4px;row-gap:2px;justify-content:flex-start;align-items:center;gap:0 16px;height:auto;min-height:44px;max-height:none;padding-inline:14px;box-sizing:border-box;overflow:visible;font-size:.95rem}.pstrip-wrap .pstrip.pstrip-box.pstrip-line:has(>.pstrip-skels),.pstrip-wrap .pstrip.pstrip-box.pstrip-line:has(>.pstrip-finish){min-height:44px}.pstrip-line .pstrip-row{flex-wrap:wrap;min-width:0;gap:0 10px;align-items:center}.pstrip-line .pstrip-main{flex:none}.pstrip-line .pstrip-finish{flex:0 1 auto;margin-left:auto;min-height:0;white-space:nowrap;overflow:visible;flex-wrap:wrap;row-gap:2px}.pstrip-line .pstrip-done{font-size:1.15rem;white-space:nowrap}.pstrip-line .pstrip-planned,.pstrip-line .pstrip-badge,.pstrip-line .pstrip-part{white-space:nowrap}.pstrip-line .pstrip-finish>.pstrip-part{flex:none;overflow:visible}.pstrip-line .pstrip-finish>.pstrip-part~.pstrip-part{flex:none;overflow:visible}.pstrip-line .pstrip-pill{flex:none;white-space:nowrap}.pstrip-line .pstrip-plansetup{min-height:0}.pstrip-wrap:has(.pstrip-line) .pstrip-list{position:absolute;right:0;top:48px;z-index:20;max-width:min(520px,100%);margin:0;padding:8px 12px 8px 28px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 4px 14px #0000002e}.pstrip-line .pstrip-noend{display:flex;align-items:baseline;gap:4px;min-width:0}.pstrip-line .pstrip-noend-t{overflow:hidden;text-overflow:ellipsis;min-width:0}.pstrip-line .pstrip-noend .pstrip-plansetup{flex:none}@media(min-width:600px){.pstrip-line .pstrip-pill{min-height:var(--h-ctl);font-size:var(--fs-body)}}@media(max-width:599px){.pstrip.pstrip-box .pstrip-noend-row{font-size:.85rem;line-height:1.3;display:flex;flex-wrap:wrap;align-items:center;column-gap:8px}.pstrip.pstrip-box .pstrip-noend-row .pstrip-plansetup{margin-block:-6px}}.pstrip-from{font-size:.8em;color:var(--ink-3, var(--ink-2));font-weight:400;white-space:nowrap}.pstrip-line .pstrip-from{flex:none}.pstrip-pill-short{display:none}@media(max-width:1279px){.pstrip-line .pstrip-pill-full,.pstrip-line .pstrip-gap{display:none}.pstrip-line .pstrip-pill-short{display:inline}}@media(max-width:599px){.pstrip.pstrip-box .pstrip-finish{flex-wrap:wrap}.pstrip.pstrip-box .pstrip-finish .pstrip-part{white-space:normal}.pstrip.pstrip-box .pstrip-finish>.pstrip-part+.pstrip-part:before{content:"· "}.pstrip.pstrip-box .pstrip-finish>.pstrip-part.pstrip-bol:before{content:none}}.kpis{grid-template-columns:2fr 1fr 1fr}.kpis.kpis-2{grid-template-columns:2fr 1fr}@media(max-width:900px){.kpis{grid-template-columns:1fr 1fr}.kpis.kpis-2{grid-template-columns:1fr}}.ov-gap{margin-top:8px;font-weight:600}.ov-info{display:inline-flex;align-items:center;gap:4px;min-height:40px;box-sizing:border-box;margin:-12px -10px;padding:0 10px;border:0;background:transparent;color:inherit;font:inherit;cursor:help}.ov-i{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--ink-3);border-radius:var(--r-circ);color:var(--ink-3);font:italic 700 11px/1 serif}.ov-info:hover .ov-i,.ov-info:focus-visible .ov-i{color:var(--ink);border-color:var(--ink)}.ov-info:focus-visible{outline:2px solid var(--ink-3);outline-offset:-2px;border-radius:var(--r6)}.ov-gap-good{color:var(--lime)}.ov-gap-warn{color:var(--warning)}.ov-gap-bad{color:var(--critical)}.kpi-hero .muted{color:#aeb8a8}.ov-behind{color:var(--warn-text);font-weight:600}.ov-kpi-text{font-size:1.05rem;line-height:1.3}.ov-late{color:var(--bad-ink)}.phase-table .ph-plan{display:none}.phase-table .ph-name-text{overflow-wrap:anywhere}@media(max-width:639px){.phase-table,.phase-table tbody{display:block}.phase-table thead{display:none}.phase-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:6px;padding:12px 0;border-bottom:1px solid var(--line)}.phase-table tr:last-child{border-bottom:0}.phase-table td{display:block;padding:0;border:0;min-width:0;width:auto;height:auto;min-height:0}.phase-table .ph-name{grid-column:1;grid-row:1}.phase-table .ph-name-text{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.phase-table .ph-actual{grid-column:2;grid-row:1;font-weight:700;text-align:right;white-space:nowrap}.phase-table .ph-bar{grid-column:1 / -1;grid-row:2;width:auto;min-width:0;padding:0 3px}.phase-table .ph-dates{grid-column:1 / -1;grid-row:3;white-space:normal}.phase-table .ph-plan{display:inline}.phase-table .ph-planned,.phase-table .ph-share{display:none}}.qs-line{display:none}@media(max-width:600px){.qs-table,.qs-table tbody{display:block}.qs-table thead{display:none}.qs-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:4px;padding:12px 0;border-bottom:1px solid var(--line)}.qs-table tr:last-child{border-bottom:0}.qs-table td{display:block;padding:0;border:0;min-width:0;width:auto;height:auto;min-height:0;text-align:left}.qs-table .qs-n{display:none}.qs-table .qs-name{grid-column:1;grid-row:1;overflow-wrap:anywhere}.qs-table .qs-badge{grid-column:2;grid-row:1;text-align:right}.qs-table .qs-line{display:block;grid-column:1 / -1;grid-row:2;font-size:.8125rem;color:var(--ink-3)}.qs-table .qs-line .neg{color:var(--neg)}.qs-table .qs-line .pos{color:var(--pos)}}.ov-disagree{margin:0;color:var(--warn-text)}.ov-disagree .link-btn{color:inherit;min-height:40px;text-align:left}.qs-head{display:flex;align-items:center;gap:4px 10px;flex-wrap:wrap;margin-bottom:8px}.qs-head h2{margin:0}.info-hint{min-width:28px;padding:0 6px;line-height:1}.info-hint-text{flex:1 1 100%;margin:0}@media(max-width:640px){.info-hint{min-height:40px;min-width:40px}}.ov-bar{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:6px 10px;box-shadow:var(--shadow)}.ov-bar.past{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.ov-bar-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px}.ov-bar-date{display:inline-flex;align-items:center;gap:6px}.ov-bar .btn{min-width:32px}.ov-bar-note{margin:4px 0 0;font-size:.85rem;font-weight:600}@media(max-width:640px){.ov-bar .btn,.ov-bar .segmented button{min-height:40px}.ov-bar .btn{min-width:40px}}.ov-top{display:flex;flex-direction:column;gap:8px;min-width:0}.ov-top>.ov-arrange-bar{order:-1}.ov-arrange-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:2px 8px;border:1px dashed var(--ink-3);border-radius:var(--radius);background:var(--surface-2)}.ov-arrange-bar .ov-arrange-hint{margin:0 auto 0 0}.ov-period{width:auto;min-width:0;min-height:32px;padding-block:0}.ov-asof-lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ov-bar .inline-field{display:inline-flex;margin:0}.ov-bar-note{margin:0}.ov-bar.past .ov-bar-row{flex-wrap:wrap}.ov-seek{position:absolute;left:0;right:0;bottom:0;height:28px;z-index:5}.ov-seek-track{position:absolute;left:0;right:0;bottom:4px;height:3px;border-radius:var(--r2);background:var(--line-strong, var(--line));overflow:hidden;pointer-events:none}.ov-seek-fill{display:block;height:100%;background:var(--st-done)}.ov-seek-today{position:absolute;bottom:3px;height:5px;width:2px;margin-left:-1px;background:var(--ink);pointer-events:none}.ov-seek-dot{position:absolute;bottom:5.5px;width:12px;height:12px;margin:0 0 -6px -6px;border-radius:50%;background:var(--st-done);border:2px solid var(--surface);box-shadow:0 0 0 1px var(--st-done);opacity:0;pointer-events:none;transition:opacity .12s}.ov-seek:hover .ov-seek-dot,.ov-seek.dragging .ov-seek-dot,.ov-seek:focus-within .ov-seek-dot{opacity:1}.ov-seek-input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.ov-seek-tip{position:absolute;bottom:calc(100% + 2px);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;padding:3px 8px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line-strong, var(--line));box-shadow:var(--shadow);font-size:.8rem;white-space:nowrap;pointer-events:none;z-index:6}.ov-seek-tip small{color:var(--ink-3);font-size:.72rem}.ov-seek:has(.ov-seek-input:focus-visible) .ov-seek-dot{box-shadow:0 0 0 3px var(--accent)}.ov-tab .ov-top>.ov-bar{padding-bottom:28px}.ov-period-seg{display:none}.ov-warn{position:relative;min-width:0}.ov-warn-pop{position:absolute;top:calc(100% + 10px);right:0;z-index:30;width:min(380px,calc(100vw - 24px));box-sizing:border-box;background:var(--surface);color:var(--ink);border:1px solid var(--warn-line);border-radius:var(--radius);box-shadow:0 8px 24px #00000059;padding:8px 12px 10px;font-size:.9rem}.ov-warn-pop:before{content:"";position:absolute;top:-6px;right:28px;width:10px;height:10px;background:var(--surface);border-left:1px solid var(--warn-line);border-top:1px solid var(--warn-line);transform:rotate(45deg)}.ov-warn-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}@media(max-width:640px){.ov-warn-pop{left:0;right:auto}.ov-warn-pop:before{right:auto;left:28px}}.ov-warn-btn{white-space:nowrap;color:var(--warn-ink);background:var(--warn-bg);border-color:var(--warn-line);font-weight:600}.ov-warn-list ul{margin:0;padding-left:18px}.ov-warn-list li{padding:3px 0}.ov-scurve .qs-head .legend{display:inline-flex;align-items:center;gap:12px;margin:0 0 0 6px}@media(max-width:640px){.ov-warn-btn{min-height:40px}}.pstrip-chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.pstrip-chip-done{color:var(--good-ink);font-weight:700;font-size:1.15em}.pstrip-chip-plan{color:var(--ink-3);font-weight:500}.pstrip-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--ink-3)}.pstrip-chip-word{font-size:.85em;font-weight:600;color:var(--ink-2);margin-left:-2px}.pstrip-dot.badge-good{background:var(--good-ink)}.pstrip-dot.badge-warning{background:var(--warning)}.pstrip-dot.badge-critical{background:var(--critical)}.pstrip-wrap:has(.pstrip-skels){min-width:150px}.pstrip-wrap:has(.pstrip-chip) .pstrip.pstrip-box{width:fit-content;max-width:100%;min-height:0;padding-block:6px}@media(min-width:641px){.qs-table .qs-n{color:var(--ink-2)}.qs-table .qs-n.muted{color:var(--ink-3)}.qs-table .qs-n.neg{color:var(--neg)}.qs-table .qs-n.pos{color:var(--pos)}.qs-table .qs-act{color:var(--ink);font-weight:700;background:color-mix(in srgb,var(--lime-soft) 55%,transparent)}.qs-table .qs-gsep{border-inline-start:1px solid var(--line-strong, var(--line))}}.ov-tab.stack>*+*{margin-top:10px}.ov-tab .card{padding:12px 14px}.ov-strip{position:fixed;top:var(--app-header-h, 52px);left:0;right:0;z-index:8;box-sizing:border-box;min-height:40px;display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--warn-bg);border-bottom:1px solid var(--warn-line);color:var(--warn-ink);font-size:.85rem;font-weight:600;box-shadow:var(--shadow)}.ov-strip-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ov-strip .ov-strip-today{flex:none}.ov-tab.stack>.ov-strip{margin-top:0}.ov-play{display:inline-flex;align-items:center;gap:4px}.ov-speed-inline{display:none}.ov-play .btn{min-width:32px;padding-inline:8px}.ov-speed{font-variant-numeric:tabular-nums;font-weight:600}.ov-play-btn[aria-pressed=true]{background:var(--lime-soft);border-color:var(--accent)}.ov-range-seg,.ov-range-inline{display:none}.ov-range-anchor{position:relative;display:inline-flex}.ov-range{position:absolute;top:calc(100% + 10px);left:0;z-index:30;width:max-content;max-width:calc(100vw - 16px);box-shadow:var(--shadow);display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);font-size:.9rem}.ov-range.end{left:auto;right:0}.ov-range-opt{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.ov-progress{position:absolute;left:0;bottom:0;height:2px;background:var(--accent);transition:width .2s linear}.ov-strip .ov-play-btn{flex:none}@media(min-width:1100px){.ov-tab.stack>*+*{margin-top:8px}.ov-tab .card{padding:8px 12px}.ov-tab .qs-head{margin-bottom:4px}.ov-tab .qs-head h2{font-size:var(--fs-h3);line-height:26px}.ov-tab .table:where(:not(.ptree-table)) th{height:28px}.ov-tab .table:where(:not(.ptree-table)) td{height:27px;padding-block:2px}.ov-tab .ov-bar{padding-block:4px}.ov-tab .phase-table .ph-name-text{white-space:nowrap}}@media(min-width:1300px){.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve){--ov-fs: clamp(min(11px, 11px * var(--ov-k, 1)), min((2.1vh - 4px) * var(--ov-k, 1), .93vw), 16px * var(--ov-k, 1));--ov-row: clamp(min(17px, 17px * var(--ov-k, 1)), (3.9vh - 9px) * var(--ov-k, 1), 31px * var(--ov-k, 1));--ov-ctl: clamp(24px, 4.6vh - 10px, 34px);display:grid;grid-template-columns:var(--ov-cols, minmax(0, 500fr) minmax(0, 500fr));gap:clamp(4px,.7vh,6px) 10px;align-items:start;grid-template-areas:"top top" var(--ov-areas, "left right" "bottom bottom");grid-template-rows:auto var(--ov-rows, auto minmax(320px, 1fr))}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>*{grid-column:1 / -1;margin-top:0}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-top{grid-area:top;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 10px}.ov-top>.kpis{flex:1 1 360px;min-width:0}.ov-top>.pstrip-wrap{flex:0 0 auto;min-width:0}.ov-top>.ov-bar{flex:1 1 0;min-width:0;margin:0}.ov-period-seg{display:inline-flex;height:24px;box-sizing:border-box;align-items:stretch}.ov-period{display:none}.ov-period-seg button{min-height:0;height:100%;padding-block:0}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-top{position:relative;padding-bottom:3px;margin-bottom:calc(-1*clamp(4px,.7vh,6px))}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-top>.ov-bar{position:static;padding-bottom:0}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-top .ov-progress{display:none}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-top .ov-seek{left:0;right:0;bottom:0;height:11px}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-top .ov-seek-track{bottom:0}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-top .ov-seek-today{bottom:0}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-top .ov-seek-dot{bottom:1.5px}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-top>:is(.pstrip-wrap,.ov-warn){position:relative;z-index:6}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-top>.ov-bar .ov-bar-row>:not(.ov-seek){position:relative;z-index:6}.ov-range-seg{display:inline-flex;height:24px;box-sizing:border-box;align-items:stretch}.ov-range-seg button{min-height:0;height:100%;padding-block:0}.ov-range-inline{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.ov-range-inline .date-field{width:8.6em;min-width:0}.ov-range-anchor{display:none}.ov-speed-inline{display:inline-flex}.ov-range-speed{display:none}.ov-top>.ov-warn{flex:0 0 auto;margin:0}.ov-top>.ov-arrange-bar{flex:1 0 100%}.ov-tab{--ov-top-h: 32px;--ov-top-fs: calc(var(--ov-fs) - 1px)}.ov-top>:is(.pstrip-wrap,.kpis,.ov-bar,.ov-warn){font-size:var(--ov-top-fs)}.ov-tab .ov-top .pstrip-wrap .pstrip.pstrip-box.pstrip-line.pstrip-box{box-sizing:border-box;height:var(--ov-top-h);min-height:0;max-height:none;padding:0 10px;font-size:var(--ov-top-fs)}.ov-tab .ov-top>.ov-bar{height:var(--ov-top-h);box-sizing:border-box;padding-block:0;display:flex;align-items:center}.ov-tab .ov-top>.ov-bar .ov-bar-note{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.ov-tab .ov-top>.ov-bar .ov-bar-row{flex:1 1 auto;min-width:0;flex-wrap:nowrap}.ov-tab .ov-top>.ov-bar .ov-bar-extra{margin-left:auto}.ov-tab .ov-top>.ov-bar .ov-seek-input{height:100%;min-height:0}.ov-tab .ov-top>.ov-bar :is(.btn,select,input:not(.ov-seek-input),.date-field,.segmented button){min-height:24px;height:24px;font-size:var(--ov-top-fs)}.ov-tab .ov-top>.ov-warn .ov-warn-btn{height:var(--ov-top-h);min-height:0;padding-block:0;font-size:var(--ov-top-fs)}.ov-tab .ov-top .pstrip-pill{min-height:0;height:22px;padding-block:0;font-size:calc(var(--ov-top-fs) - 1px)}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>[data-slot=left]{grid-area:left}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>[data-slot=right]{grid-area:right}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>[data-slot=bottom]{grid-area:bottom}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>:is(.ov-phases,.ov-qty){align-self:stretch}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-qty{display:flex;flex-direction:column}.ov-qty .qs-foot{margin-top:auto;padding-top:4px}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>:is(.ov-phases,.ov-qty,.ov-scurve){min-height:0;overflow:hidden}.ov-phases>.table-scroll,.ov-qty>.table-scroll{flex:0 1 auto;min-height:0;overflow:auto}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-phases{display:flex;flex-direction:column}.ov-qty .qs-foot .spread-all{margin:0}.ov-qty .qs-foot:empty{display:none}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-scurve{align-self:stretch;min-height:0;display:flex;flex-direction:column;overflow:auto}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>[data-fill]{min-height:0;overflow:auto}.ov-scurve .chart-fill{flex:1 1 0;min-height:0;display:flex;flex-direction:column}.ov-scurve .chart-fill .chart-svg{flex:1 1 0;min-height:60px}.ov-scurve .chart-fill .table-view{flex:none;max-height:45%;overflow:auto}.ov-tab .pstrip-wrap .pstrip.pstrip-box.pstrip-line{height:calc(var(--ov-ctl) + 4px);min-height:0;max-height:none;padding:0 12px;font-size:var(--ov-fs)}.ov-tab .pstrip-line .pstrip-done{font-size:calc(var(--ov-fs) + 1.5px)}.ov-tab .pstrip-line .pstrip-badge{font-size:calc(var(--ov-fs) - 1px)}.ov-tab .pstrip-wrap:has(.pstrip-line) .pstrip-list{top:calc(var(--ov-ctl) + 8px)}.ov-tab .ov-qty .qs-table th{white-space:nowrap;line-height:1.2;vertical-align:middle}.ov-tab .ov-qty .qs-table th.num{min-width:0}.ov-tab .ov-qty .qs-table .qs-n{width:1%;white-space:nowrap}.ov-tab .ov-qty .qs-table .qs-name{white-space:nowrap}.ov-tab .ov-qty .qs-table :is(th,td){padding-inline:5px}.ov-tab .phase-table .ph-name{white-space:nowrap}.ov-tab .phase-table .bar-col{width:auto;min-width:80px}.ov-tab .ov-bar-row{gap:6px 8px;flex-wrap:nowrap}.ov-tab .ov-bar{padding-inline:6px}.ov-tab .card{padding:4px 10px 6px}.ov-tab .qs-head{margin-bottom:0}.ov-tab .qs-head h2{font-size:calc(var(--ov-fs) + 1.5px);line-height:var(--ov-row)}.ov-tab .info-hint{min-height:0;height:var(--ov-row)}.ov-tab .table:where(:not(.ptree-table)) :is(th,td){font-size:var(--ov-fs);line-height:1.2;padding-block:0}.ov-tab .table:where(:not(.ptree-table)) th{height:var(--ov-row);font-size:calc(var(--ov-fs) - .5px)}.ov-tab .table:where(:not(.ptree-table)) td{height:var(--ov-row)}.ov-tab .table :is(.tiny,.small,.badge){font-size:calc(var(--ov-fs) - 1.5px)}.ov-tab .ov-qty .badge{padding-block:0;line-height:1.3}.ov-tab .ov-bar{padding-block:2px;font-size:var(--ov-fs)}.ov-tab .ov-bar :is(.btn,.segmented button,input,select){min-height:var(--ov-ctl);height:var(--ov-ctl);padding-block:0;font-size:var(--ov-fs)}.ov-scurve .chart .legend{margin-bottom:0;font-size:calc(var(--ov-fs) - 1px)}.ov-scurve .table-view summary{min-height:0;padding-block:0;font-size:calc(var(--ov-fs) - 1px)}.app:has(.ov-tab>.ov-phases~.ov-scurve){display:flex;flex-direction:column;height:100dvh}.app:has(.ov-tab>.ov-phases~.ov-scurve)>*{flex-shrink:0}.app:has(.ov-tab>.ov-phases~.ov-scurve)>.app-main{flex:1 1 0;min-height:0;width:100%;max-width:1840px;display:flex;flex-direction:column;padding-bottom:8px}.app-main>.project-page:has(>.ov-tab>.ov-phases~.ov-scurve){flex:1 1 0;min-height:0;display:flex;flex-direction:column}.project-page:has(>.ov-tab>.ov-phases~.ov-scurve)>*{flex-shrink:0}.project-page>.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve){flex:1 1 0;min-height:0}.ov-bar-extra{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.ov-arrange-word{display:none}.ov-arrange-hint{font-size:calc(var(--ov-fs) - 1px);line-height:1.25}.ov-tab.ov-arrange{position:relative;overflow-y:auto}.ov-tab.ov-arrange>[data-slot]{outline:1.5px dashed var(--ink-3);outline-offset:-3px}.ov-tab.ov-arrange>[data-slot][data-over]{outline:2px solid var(--accent);background:var(--lime-soft)}.ov-tab.ov-arrange>[data-slot][data-picked]{outline:2px solid var(--accent)}.ov-grip{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;height:var(--ov-row);min-width:28px;padding:0 6px;border:1px solid var(--line);border-radius:var(--r6);background:var(--surface);color:var(--ink-2);font-size:calc(var(--ov-fs) + 3px);line-height:1;cursor:grab;touch-action:none}.ov-grip:hover,.ov-grip:focus-visible{border-color:var(--ink-3);color:var(--ink)}.ov-grip:active{cursor:grabbing}.ov-grip.on{border-color:var(--accent);background:var(--lime-soft);color:var(--ink)}.ov-dividers{position:absolute;inset:0;z-index:6;pointer-events:none;grid-column:auto;grid-row:auto;margin:0}.ov-tab.stack:has(>.ov-phases):has(>.ov-scurve)>.ov-dividers{grid-column:auto;grid-row:auto}.ov-div{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;color:var(--ink-3);font-size:14px;line-height:1}.ov-div:before{content:"";position:absolute;background:var(--ink-3);border-radius:var(--r1);opacity:.55}.ov-div>span{position:relative;padding:1px;border-radius:var(--r4);background:var(--surface)}.ov-div-col{width:14px;margin-left:-7px;cursor:col-resize}.ov-div-col:before{top:0;bottom:0;left:6px;width:2px}.ov-div-row{left:0;right:0;height:14px;margin-top:-7px;cursor:row-resize}.ov-div-row:before{left:0;right:0;top:6px;height:2px}.ov-div:hover:before,.ov-div:focus-visible:before{background:var(--accent);opacity:1}.ov-div:focus-visible{outline:2px solid var(--accent);outline-offset:1px}}@media(min-width:1440px){.ov-arrange-word{display:inline}}@media(max-width:1299px){.ov-bar-extra,.ov-arrange-bar,.ov-grip,.ov-dividers{display:none}}.tabs-setup{list-style:none;margin:0;padding:0;display:grid;gap:4px}.tabs-setup li{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--line)}.tabs-setup li.is-off .tabs-setup-name{color:var(--ink-2)}.tabs-setup-name{flex:1;min-width:0}.tabs-setup .btn-icon{min-width:36px;min-height:36px;padding:0}.tabs-setup .checkbox-row,.tabs-setup-always{min-width:110px}@media(max-width:700px){.tabs-setup .btn-icon{min-width:40px;min-height:40px}.tabs-setup .checkbox-row,.tabs-setup-always{min-width:84px}}.photo-viewer{width:94vw;height:92vh;max-width:none;max-height:none;padding:0;border:1px solid #222;border-radius:var(--r10);background:#0b0b0b;color:#e8e8e8;overflow:hidden}.photo-viewer[open]{display:flex;flex-direction:column}.photo-viewer::backdrop{background:#000000db}.pv-stage{position:relative;flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;touch-action:pan-y pinch-zoom}.pv-img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;display:block}.pv-wait{background:#151515}.pv-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:72px;border:none;border-radius:var(--r8);background:#00000080;color:#fff;font-size:1.4rem;cursor:pointer}.pv-nav:hover:not(:disabled){background:#000c}.pv-nav:disabled{opacity:.25;cursor:default}.pv-prev{left:8px}.pv-next{right:8px}.pv-close{position:absolute;top:8px;right:8px;width:40px;height:40px;border:none;border-radius:var(--r-pill);background:#0000008c;color:#fff;font-size:1.1rem;cursor:pointer}.pv-close:hover{background:#000000d9}.pv-bar{flex:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;padding:8px 14px;border-top:1px solid #222;background:#101010;color:#bdbdbd}.pv-bar a{color:#b6e35a}.pv-count{padding:1px 10px;border-radius:var(--r-pill);background:#222;color:#fff;font-variant-numeric:tabular-nums}.pv-extra{display:flex;flex:1 1 18rem;min-width:0;align-items:center;gap:12px;flex-wrap:wrap}.pv-extra .photo-caption-edit{flex:1 1 14rem;margin-top:0}.pv-extra .photo-caption-edit input{background:#181818;color:#eee;border:1px solid #333}.pv-foot{display:flex;gap:8px;margin-left:auto}@media(max-width:640px){.photo-viewer{width:100vw;height:100dvh;border:none;border-radius:0}.pv-nav{width:40px;height:64px}}.ra-foot{display:flex;flex-direction:column;gap:6px;width:100%;padding:8px 0}.ra-error{margin:0;font-size:14px;color:var(--bad-ink)}.ra-buttons{display:flex;flex-direction:row-reverse;justify-content:flex-start;gap:8px}.ra-chip{min-height:36px}.modal:has(.ra-foot) .modal-foot{height:auto}@media(max-width:640px){.ra-buttons{flex-direction:column}.ra-buttons .btn,.ra-chip{width:100%;min-height:44px}}.route-builder .builder-stops>li{grid-template-columns:24px minmax(0,1fr) 40px}.route-builder .builder-stops>li>.btn{min-width:40px;min-height:40px}.route-builder .builder-quiet{display:flex;flex-wrap:wrap;gap:4px 16px;margin:6px 0 2px}.route-builder .builder-quiet-btn{background:none;border:0;padding:0 2px;min-height:40px;cursor:pointer;font:inherit;color:inherit;text-align:left}.route-builder .builder-quiet-btn:hover,.route-builder .builder-quiet-btn:focus-visible{color:var(--ink);text-decoration:underline}.route-builder .builder-stops .sselect-list li{grid-template-columns:none;gap:0}@media(max-width:767px){.route-builder .route-width input[type=range],.route-builder .route-width .btn{min-height:40px}}.route-builder .builder-stops.builder-two>li{grid-template-columns:3.5em minmax(0,1fr)}.route-builder .builder-n.builder-ft{text-align:left}.route-builder .builder-add-stop{align-self:flex-start;width:auto;min-height:40px}.rb-foot{display:contents}.rb-foot .btn{white-space:nowrap}@media(max-width:479px){.rb-foot{display:flex;flex-direction:column;gap:8px;width:100%;padding:8px 0}.rb-foot .btn{width:100%}.rb-foot .rb-primary{order:1}.rb-foot .rb-another{order:2}.rb-foot .rb-cancel{display:none}}@media(max-width:639px){.qty-list .plan-li-pct{flex:0 1 auto;max-width:48%;text-align:right}}.qty-add-link{background:none;border:0;color:var(--ink-2);font:inherit;cursor:pointer;padding:0 4px;min-height:30px;text-decoration:underline dotted;text-underline-offset:3px}.qty-add-link:focus-visible{outline:2px solid var(--line-strong);outline-offset:2px;border-radius:var(--r4)}@media(max-width:639px){.qty-add-link{min-height:40px;padding:0 8px}}.qty-caret{flex:none;width:28px;height:28px;padding:0;background:none;border:0;border-radius:var(--r6);color:var(--ink-2);font:inherit;cursor:pointer}.qty-caret:hover{background:var(--row-soft)}.qty-caret:focus-visible{outline:2px solid var(--line-strong);outline-offset:1px}.qty-cable-name{display:flex;align-items:flex-start;gap:4px}.qty-cable-sum{margin-left:32px}.qty-table .qty-sec{padding-left:32px;font-weight:400}.qty-chain-li{flex-wrap:wrap}.qty-chain-li .qty-caret{width:40px;height:40px}.qty-chain-l2{flex:1 0 100%;padding:0 0 6px 40px}.qty-sec-li{padding-left:24px;font-weight:400}.back-to-line{display:flex;align-items:center;gap:4px;min-width:0;font-size:.9rem}.back-to-line button{background:none;border:0;color:var(--ink-2);cursor:pointer;font:inherit;min-height:40px;padding:0 8px;border-radius:var(--r6)}.back-to-line button:hover{color:var(--ink);text-decoration:underline}.back-to-line-go{display:flex;align-items:center;gap:4px;min-width:0;text-align:left;padding-left:0!important}.back-to-line-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.back-to-line-x{flex:none;min-width:40px}.building-rows .building-row>b{flex:none;white-space:nowrap}.building-rows .building-row .building-row-name{flex:1 1 0;min-width:0;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-align:left}.building-rows .building-row .building-row-name+.nowrap{margin-left:auto}
