@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAAQAABAAAAAACEwAAAOmAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEgAZBEICoMkgmcLFgABNgIkAyYEIAWFNAdiDAcb3wYgngU5GW9qFpxcIlPzNPVjx7JSP3iet+s9971Zzn7Q8yEHG1C91aUi2aFP6j1c07wqko0ssGwl8RDyRPehgRL1M2Z+akJOifHwcbX3d1ZvWowiysMskA0v3NL0wohiuX//l5EDn7gc/6xs+9oikSbyg6LCvegvncOw87lpLFr4wF0a4AIKCLJtSQTXJ0FUc+nW+HePCPAAAEUITQhwS1VELdq2lyi7mSBClGUAfAiQcQoLURwIEAbFSTgpoQyQKZ5QAIQmFC1RkEIyQbp0pOgGEpLm3PgkW7FBndVwEN1qI7KmHk2wjgMoN/MuNwf0QzU7Z/j7kmFrZXIicgFQg/oLEmlS/KkQSoFU6jDNFoqGGVviKyYilIFgeICEGqgfEltBPQFQQINQmoBQhgEQgQJp4CdRoy9ui0o85+N8br7clI0pPwej4FsISZ8AAG4AocADpkJsAmKJAgaVDFMxCCmFTiMiwqAEjpMAFgtkLp3maM5wD/V4R2VGmtOOnpVldz6417+z3Hs/fjQ3vH/P8VTm8PUfPsiyszHmoVMsvf3e3PCx2Nz17t3UTWLjVinvrCiLufT6svGmhrWE6j1tzjbHRH9FSDV/huK83vrzvQ3fI6ndj0Zy4vGOxfHp5Y1xeSVeq2vI33SA3qppmjKsHF6ZEGh7/N5KGlGRkPj/ZcXKUFbp4I6/swFaqzO4Ma0xdWffCXO6Pk1bcMKYilvTUptzO3JeZGW9yGnPTWl2rULNEeDgdJnXYLs0jrQATKiT/q1eKoDq8x6fmt/6kqv5H9f6D+D76dxIgF8Hd4wmlf/C2bAnARD8c2b1CGD+x+Y/y3RXsZSaYiOmkDkC4A/SVw6msSjArYwhliYAAAAUAab1aFK6gHsy1ZSJ5GiRKf5RJtNa/MsMRW7JbKqsltnlGy71VyZZRzQe4YCJuAlcAgYBASK0IhA+h+aGwWGxiY5BNcKNFPyXRTSMIyJwXYs4fF3zMJaefnNbRz6JWyM8BCMQF4gQ1zGIwSL5COaageEcIIQVyWcpV6jaNCYBAB/3oC9fpXzFLGNS1cPDhIcenLt9c3odbByMS851lFpG5gSIfGIfNo4VsYQ1kdcJGCW/zusPwACXQSNgjSTBBhgOyzwy+zRO0LeRVF2TgEDPYsADhE8RQ4/8DQob9KVubTdI9VgUOrQYYhO7OOyNE6/83y22ZK7Ttxot1TzIenBoNZW4JkySwrgAB+bE17sUW2WXxLfqlLEJAA==)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-vietnamese-400-normal-Cg2kxhWu.woff2)format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-400-normal-B8TCSmUq.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-ext-400-normal-D127hM_v.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-400-normal-2ppkqaOR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-400-normal-Dhut76fR.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-400-normal-BDKaGhyp.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,d09GMgABAAAAAAQwABAAAAAACHQAAAPWAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAZBEICoMkgmULFgABNgIkAyYEIAWFXgdiDAcbAwdRlE3OAiA/C2NnWmqDevE1lV86rytbx0YiXN7GJix16cheg+c///7dZ+Z+SEzSUhXoEkLHLqv//fu/tfY3nUm+g2lnlqwhYmnWZ232zf5BQiV0qzxKoR5UjVQLFR7+uVfv+5lDN4WzaUwPWEASTFvwak+Pl2rLqgUqWr/l7mqeJpR5FlJkbclrawv4WyBZaRDdxDX5/xelhdVKE4m2zbooInWEO19jURQVPvBuOvDkAcHeliEDXwoiZxo1/tstIsAWAChCaEKAtVDJ1GlxfR+yN4oBZBkAkwkC5GqIAOJAgDAoloQlxZUBIvkTCoDQhKLN8VKYRQwXjizagXkAs434JyuYQT2rCECN1YtcoBrzICIWQLla63ltC57YDcVwpmCYNY1OyAtAdew3EEiTvR8LrhQIpZ4sGxUNU3fqKTYIVwZ6wxb4twhACrICgAIauNIEuDI0Ahw50sBOoCL3fkMFiomxx/Jz8zHHWET500Ih1xCSmuAAwBqAK7AF44Bd4MsRYFApIMBjEJKlWhoePhvhmMSB1Ro5D2fWZibFkofp/bPMacp6vCkbxnNyp3atz66P1K75BuuPeXZe/3xXNlQfm0uF9U+mqV1rYHNKX80eoYGO1L5bZLBZ37LabkggZnym3HIxRqivANhY/1+NlKncG/kn6rGEPYd8ufSeriuFFF+iE7bqaWxa2cwaeQv2IOd05Pu/v386CWdDv/T35UJC4mam3WgqVPQregeerWBu3ebN2oUbvNYNa6rhi42eyuXw8IeI7mbYQmSZbagRBFiwdM8fzreS7vMYYAP1qq91voMA1Q4fa+5fH3DIfZZa/wf49R3rCfj7vreXVLqyajqYUwAEL5tOveUx/znVL7LYKlnPKrmnolmug3QdfFMwL6AAa+kMvjQBAACgCLB3Q4ZkrYDnMeuxRGJMWIp9xLO0Yn/tRhXLTLY7LHOxtrLspWtkOQoWz3RiK1gvGpDu7RYZwAZpLaN/Ac04HxVYgSgPozliYCw2tMGgYyTfNo8UIapRLkpAFNGCCkRsCIUiIwkSrKIRmBCKtK3CeNoWCJaOBovWO1eiGjtbu6AdMojvZ7gAkSxeogxJckwwIY7zRM50xcsSL0Wivtr+a7VlzZbxdGA3ZJE8avQ8Osn60jlc6Io43TCRLFEbA7XGAKPhvtpGjuUcBq3PuCISsnGiorvImzBPYPxsJFXbCM7XsRrn4tCVkKHD7hpFxJrGULWyNQj1JhQ6tBhiJuZiYV6k/hXAuNiagHXH+8Rkbte5sz8+pJaoJtH4Rg5JTJoeMxsvf4RbbhkZAA==)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-vietnamese-500-normal-DiU8zqi-.woff2)format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-500-normal-CvE5C8T-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-ext-500-normal-9VZagAe1.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-500-normal-CqEEAICU.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-500-normal-Bf-nb4oT.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-500-normal-DYtqi0QS.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(data:font/woff2;base64,d09GMgABAAAAAAQcABAAAAAACIgAAAPAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAZBEICoMogmULFgABNgIkAyYEIAWFbgdiDAcbEwcgnge2zWYrRGrW2DqMIvVrh6cG/6B/9ecmGb7Z3Q/IFcgSYAe7BJC/X2tvBdPop7KYypr+m92/iE0nEhIeMkO6SiJfo3oCmXALgMKT3MtvBPKJY8aL5MhAnUgFTTtot/MqGvHOs2lU9Q389/gPWGD8OnXqgVcTwoAOlml+fY8ISAAABiEsQkCcfJqR9RrMrkL5sN7YgnIcgPcI0ND+tgWFgADhMEQRUQzp0EAhDQgMAMIiDJZGIQw0QxcQglR7gIaTAJxem07kgZk/RAFNG1EPIqmPikUAw83adWYBsiTlOuSSfR4QSqV+uYBYAWCym1dALhRa/LaQDgnkQ44ZqGCCgsHPGkQJIh1aQkoANhOAoqYTABjAAulQCCZ961aAVCpRQBK5DLnlpEyuQ94T/Fr/y+9P+P6+tpe2EKiCkPekgIyzOB0gAQwALACyIQkcxisYPoeQo0Vdxox0UqqeqmCkgYx4y2BooMbXE6tdS7YDeeteTdtzKT7/TrH4xvv3gwV37zJ1VaZO8+/d07S1WYNNu5i6+2Kw4H7JYN2dOwOKxHpeyepQljdHsPpoGnc8Z7AqpeqGBtHxiIV+RCkJvVwuTza50nPJys9dUz5nzMrN/fWWXWob/8YVjM3kb7y63KydGR+YGNbat1O1Nnf72eOGw1t7d6vW5M7MrDmEiZ9XoOg04PBxEtup5mrNDdy0qDUPziYfVw7bRInVXCoWmYxZcvMFXJlxd3WrOJAFIIAIUfZw5V4co5j3UgAEYLbbT8PLfUCASVM8W/aXnim937L2JcDT/cUyAcCLrSu6UeK/TuuPMAYAwdtmNYcI8P8ZNcFsjcfMVKpdBkNmL3wDzEaKAUbCCCBOBTTZUBRazyAgmT1Y5GLAGU102aJcGrENyarCtjTwX+lo7BBVvLLDlHLNTqaCVXYqPs2W1NCdIrIkyFCvaAoQQOIa5z+BNhATyzIFYxlUvA0ilUyBrRCZVMMQg2CRweXwmMbSsWwYy2MFy+JQYFiGo1tamoNnU2VgjhSHypCC2GRpC8bNls4Wo9ROLoW+TmRvokIsHs1SGB2a9JBJMET+vGMHI6VLSgvG3tG8qxbMWNCzBMByXOYyUOzG1PYUSR+BZJyytzvh0YwxNo/VIEAsuvgmi2yIRsTDPIa4MAViU2pHHotDpuKvcXFSeIgpDUN0CHYqQ5RGIIpElfr+RKwdB/J5k8HKyimksCLh2n1+E6BbgTtCZZihUmTdNt4Hm5nhckW9+7pY/GgOVVCd79LCtL/Iz9rnFgEAAAA=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-vietnamese-600-normal-Y4VTTRme.woff2)format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-600-normal-5YsyKbU1.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-ext-600-normal-DQgPU_Cg.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-600-normal-B0WRRYJ1.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-600-normal-DLTa1BUW.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-600-normal-BR_Ojra4.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(data:font/woff2;base64,d09GMgABAAAAAAP4ABAAAAAACEAAAAOfAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYbahwoBmA/U1RBVEQAZBEICoMogmULFgABNgIkAyYEIAWFKAdiDAcbzQZAHgnZGeYNcatNpH4Ez1Ne9X5V0koPnZXA23BP8lGsq7ncS/JfgvHIEMLN3G0KLFyFwfEVqsKhsUUm3AKg8CT3pr93/Mf0hc2NmkjbJu1J/zpfy7DzNvbxWTYp4C4NcJ13AUFvs3CpSRLzS+U69m4UAYIAgEIQNIIAAfLqINWtv7QF+UN7UQT5WADGIIAM6ccjyAQEECwUPgQfimgKUFAJhgJA0AgKjUKWn1pMfjVYcQaoB7Hbki/qKjaoxaojQBNpFulOXRpARl5AcbK2XVyFd0Lcs1aoyQ3scOnrwtYAKFd9BFwy0vu+EE0C8pImDHCIaRj0asAchGjKKEkQ8LcIgPjVVQAUoIFoMgJEU2gJCFdIBkJwjXvnlij3rDG2x5pf5o25afqZWkaet4FBNoIYQxh0APFoQBDoD1gCJKMALJQBFC0LQSyJz4qLswThPSSMsRwbfk1niDMo0D7YtktOZ2fAgRMy6/jjwOKsooE9T544S7Kzmbk1vuPinByZtSPJ2XuUmcceOUuelHB2ZmX1z1HrcTlthwRlU51N17z8jSRna1OV3fV99b0b/uK7yOHDST6sLbvDLbeja1zGlNE1PKentEtMelwhT/56rn/19RbtRFONJiO6q3erGr//zKenjUZ21+heJeHeng2BK6+1bM+beoW2bba19ASXheuNfRwedJTam9ptLdzYPyuklZu7VsrMQOEmHZqR8sMALz4O8VgX95PLX0kAHFDX9Pd1uM8IoCKLJdwp+rFHWNVvPq0/ADw9VTQegBcH1nQlx3w9tV3woAAQ+NlC6qEf+tf9Iut+NZOq4ONKTgPAaj8FAFPcYECA8hSSyXkwwBQCBFmPRiw/cFeaa0ohd4oqFT7Jq9RU96+0KOpTaVPZo9JDQXuKUMqrMBJNkNiIn6xhcTxYwCUfAlpDIVVkHlEFXLpdJpfNQfwfkZgwoFUrQce5YkRoIbgCLRBna7VqxpI1gYSwQOVTcUS1SRURmk1AAcMOEye4UKRMhxZterUbZLMQhALCoTYt+rXo1Oa4xrSyGSybeFln3nnZsmrRqsEufdKgNVsnodgV/v0aZTq08ViZLRtkDtz786/hkMekI2XGJYgDcUKZuptJ2NyYT5PQtNChUCuCfIhciZlasVBPguyaftQBDgB5fYlCixZLbPGI11Or9/v+12WMG+62laxVUtVprdzZUbJ2WX+vPgmZr91w2JzuNWVKlr8oZt5Jaxk=)format("woff2"),url(data:font/woff;base64,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)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-vietnamese-700-normal-CV6qDkkj.woff2)format("woff2"),url(/assets/plus-jakarta-sans-vietnamese-700-normal-BCh_uG_5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-ext-700-normal-BajbvANd.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-ext-700-normal-8-d-IyIQ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-700-normal-CfpNZvy6.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-700-normal-DqEcQeE5.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box}body{color:#333;-webkit-font-smoothing:antialiased;background:#e8f4f9;margin:0;font-family:Plus Jakarta Sans,sans-serif;font-size:14px}#root{background:#fff;min-height:100vh}button,input,select,textarea{font-family:inherit;font-size:inherit}.navbar{z-index:100;background-color:#4593c6;border-radius:6px 6px 0 0;justify-content:space-between;align-items:center;height:48px;padding:0 140px;display:flex;position:sticky;top:0}.navbar-left{align-items:center;gap:8px;display:flex}.navbar-logo-img{cursor:pointer;border-radius:6px;flex-shrink:0;width:32px;height:32px;margin-right:4px}.navbar-logo-img:hover{opacity:.85}.navbar-links{height:48px;margin:0;padding:0;list-style:none;display:flex}.navbar-links li{display:flex}.nav-link{color:#ffffffe0;border-top:3px solid #0000;border-bottom:3px solid #0000;align-items:center;padding:0 14px;font-size:14px;font-weight:700;text-decoration:none;transition:color .15s,background .15s;display:flex}.nav-link:hover,.nav-link.active{color:#fff;background:#ffffff1f}.navbar-right{justify-content:flex-end;align-items:center;gap:8px;display:flex}.nav-whats-new{color:#fff;cursor:pointer;background:0 0;border:1px solid #fff9;border-radius:4px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:500;transition:background .15s;display:flex}.nav-whats-new:hover{background:#ffffff26}.nav-settings{color:#ffffffe0;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 10px;font-size:14px;font-weight:700;text-decoration:none;transition:background .15s}.nav-settings:hover{color:#fff;background:#ffffff26}.nav-user{color:#fff;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:5px 8px;font-size:14px;font-weight:700;transition:background .15s;display:flex}.nav-user:hover{background:#ffffff26}.nav-user-wrap{position:relative}.nav-user-menu{z-index:200;background:#fff;border:1px solid #e5e7eb;border-radius:6px;min-width:160px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 4px 12px #0000001f}.nav-user-menu button{text-align:left;color:#333;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 16px;font-family:inherit;font-size:14px;display:block}.nav-user-menu button:hover{background:#f3f4f6}.nav-user-menu-divider{background:#e5e7eb;height:1px;margin:4px 0}.nav-avatar{color:#fff;background:#ffffff4d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:flex}.subnav{background:#fff;border-bottom:1px solid #e5e7eb;align-items:stretch;height:40px;padding:0 140px;display:flex}.subnav-link{color:#555;border-top:3px solid #0000;border-bottom:3px solid #0000;align-items:center;padding:0 14px;font-size:14px;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.subnav-link:hover{color:#111}.subnav-link.active{color:#111;border-bottom-color:#f97316;font-weight:600}.org-switcher{position:relative}.org-switcher-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:4px;align-items:center;gap:6px;padding:5px 10px;font-size:14px;font-weight:500;transition:background .15s;display:flex}.org-switcher-btn:hover{background:#ffffff40}.org-switcher-caret{opacity:.8;font-size:10px}.org-switcher-dropdown{z-index:200;background:#fff;border:1px solid #e5e7eb;border-radius:6px;min-width:200px;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.org-switcher-item{text-align:left;color:#333;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 16px;font-size:14px;transition:background .1s;display:block}.org-switcher-item:hover{background:#f3f4f6}.org-switcher-item.active{color:#4593c6;font-weight:600}.modal-backdrop{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-sidebar-panel{z-index:1001;background:#fff;border-radius:0 8px 8px 0;width:210px;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;box-shadow:2px 0 16px #00000026}.modal{background:#fff;border-radius:8px;flex-direction:column;width:480px;max-width:90vw;min-height:520px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 8px 32px #00000026}.modal-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-header h3{color:#111;margin:0;font-size:16px;font-weight:600}.modal-close{cursor:pointer;color:#888;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:16px}.modal-close:hover{color:#333;background:#f3f4f6}.modal-body{flex:1;padding:24px;overflow-y:auto}.modal-body form{flex-direction:column;gap:16px;display:flex}.form-field{flex-direction:column;gap:6px;display:flex}.form-field input,.form-field select{color:#111;border:1px solid #d1d5db;border-radius:6px;outline:none;padding:8px 12px;font-size:14px}.form-field input:focus,.form-field select:focus{border-color:#4593c6;box-shadow:0 0 0 3px #4593c626}.form-actions{justify-content:flex-end;gap:8px;padding-top:8px;display:flex}.timesheet{background:#fff;flex-direction:column;height:calc(100vh - 88px);padding:0;display:flex;overflow:hidden}.ts-header{border-bottom:1px solid #e8ecef;flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 140px 14px;display:flex}.ts-nav{align-items:center;gap:8px;display:flex}.ts-nav-btn{cursor:pointer;color:#444;background:0 0;border:1px solid #d0d7de;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;transition:background .1s;display:flex}.ts-nav-btn:hover{background:#f5f6f7}.ts-date{color:#1a2e3b;margin:0;font-size:24px;font-weight:600;line-height:1}.ts-return{color:#2b8a4a;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;text-decoration:underline}.ts-return:hover{color:#1d6235}.ts-cal-wrap{position:relative}.ts-cal-btn{cursor:pointer;opacity:.7;background:0 0;border:none;padding:2px 4px;font-size:18px;line-height:1}.ts-cal-btn:hover{opacity:1}.ts-cal-popup{z-index:200;background:#fff;border:1px solid #e5e7eb;border-radius:10px;width:260px;padding:12px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #0000001f}.ts-cal-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.ts-cal-title{color:#1a2e3b;font-size:14px;font-weight:600}.ts-cal-nav{cursor:pointer;color:#6b7280;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:15px}.ts-cal-nav:hover{color:#111;background:#f3f4f6}.ts-cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.ts-cal-dow{color:#9ca3af;text-align:center;padding:4px 0;font-size:11px;font-weight:600}.ts-cal-day{color:#374151;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin:auto;font-size:13px;display:flex}.ts-cal-day:hover{background:#f3f4f6}.ts-cal-day--today{color:#f97316;border:2px solid #f97316;font-weight:600}.ts-cal-day--selected{color:#fff;background:#f97316;font-weight:600}.ts-cal-day--selected:hover{background:#ea6c00}.ts-header-right{align-items:center;gap:8px;display:flex}.ts-controls{border:1px solid #d0d7de;border-radius:6px;display:flex;overflow:hidden}.ts-view-btn{cursor:pointer;color:#555;background:0 0;border:none;padding:6px 16px;font-size:14px;font-weight:500;transition:background .1s}.ts-view-btn:hover{background:#f5f6f7}.ts-view-btn.active{color:#c17b00;background:#fff8ee;border:1px solid #e8a800;border-radius:4px}.ts-running-banner{background:#f0fdf4;border:1px solid #86efac;border-radius:8px;align-items:center;gap:10px;margin-bottom:8px;padding:8px 16px;display:flex}.ts-running-dot{background:#16a34a;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.2s ease-in-out infinite ts-pulse}@keyframes ts-pulse{0%,to{opacity:1}50%{opacity:.3}}.ts-running-label{color:#166534;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:500;overflow:hidden}.ts-running-time{color:#166534;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:15px;font-weight:700}.ts-running-stop{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;flex-shrink:0;padding:5px 12px;font-size:13px;font-weight:500}.ts-running-stop:hover{background:#b91c1c}.ts-running-pause,.ts-running-resume{color:#16a34a;cursor:pointer;background:0 0;border:1px solid #16a34a;border-radius:6px;flex-shrink:0;padding:5px 12px;font-size:13px;font-weight:500}.ts-running-pause:hover{background:#f0fdf4}.ts-running-banner--paused{background:#fffbeb;border-color:#fcd34d}.ts-running-banner--paused .ts-running-label,.ts-running-banner--paused .ts-running-time{color:#92400e}.ts-running-banner--paused .ts-running-pause,.ts-running-banner--paused .ts-running-resume{color:#d97706;border-color:#d97706}.ts-running-banner--paused .ts-running-resume:hover{background:#fffbeb}.ts-running-dot--paused{background:#d97706;animation:none}.ts-bar{border-bottom:1px solid #e8ecef;flex-shrink:0;align-items:stretch;gap:0;padding:0 140px 0 0;display:flex}.ts-track-wrap{flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:140px;padding:10px 0;display:flex}.ts-track-btn{cursor:pointer;color:#fff;background:#3a8d5c;border:none;border-radius:8px;justify-content:center;align-items:center;width:56px;height:56px;transition:background .15s;display:flex}.ts-track-btn:hover{background:#2d7a4f}.ts-track-plus{font-size:38px;font-weight:300;line-height:0}.ts-track-label{color:#6b7280;font-size:10px}.ts-week-bar{flex:1;align-items:stretch;display:flex}.ts-day-btn{cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;padding:10px 12px;transition:background .1s;display:flex}.ts-day-btn:hover{background:#f8f9fa}.ts-day-btn.ts-day-active{border-bottom-color:#e88a00}.ts-day-btn.ts-day-today .ts-day-hours{color:#e88a00;font-weight:600}.ts-day-name{color:#666;text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:500}.ts-day-hours{color:#1a2e3b;font-size:14px;font-weight:500}.ts-week-total{flex-direction:column;justify-content:center;align-items:center;gap:2px;margin-left:auto;padding:10px 16px;display:flex}.ts-week-total .ts-day-name{color:#888}.ts-week-total .ts-day-hours{font-weight:700}.ts-content{flex:1;padding:0 140px 32px;overflow-y:auto}.ts-loading{text-align:center;color:#888;padding:48px}.day-empty{text-align:center;background:#f5f6f7;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;margin:24px 0;padding:80px 40px;display:flex}.day-quote{color:#888;max-width:480px;margin:0 0 8px;font-size:15px;font-style:italic;line-height:1.6}.day-quote-attr{color:#aaa;margin:0;font-size:13px}.day-view{padding:8px 0}.day-entry{background:#f3f4f6;border-bottom:1px solid #f0f2f4;border-radius:4px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:2px;padding:10px 12px;display:flex}.day-entry:nth-child(2n){background:#cce4f4}.day-entry-info{flex:1;min-width:0}.day-entry-project{color:#1a2e3b;font-size:14px}.day-entry-client{color:#888;font-weight:400}.day-entry-task{color:#555;margin-top:2px;font-size:13px}.day-entry-notes{color:#999;margin-top:2px;font-size:12px;font-style:italic}.day-entry-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.day-entry-hours{color:#1a2e3b;text-align:right;min-width:48px;font-size:16px;font-weight:600}.day-entry-lock{font-size:16px}.day-edit-btn{cursor:pointer;color:#444;background:0 0;border:1px solid #d0d7de;border-radius:6px;padding:5px 12px;font-size:13px;transition:background .1s}.day-edit-btn:hover{background:#f5f6f7}.day-entry--running,.day-entry--running:nth-child(2n){background:#fff7ed;border-color:#fdba74}.day-timer-display{color:#166534;font-variant-numeric:tabular-nums;text-align:right;min-width:60px;font-size:15px;font-weight:700}.day-timer-stop{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:5px 12px;font-size:13px;font-weight:500}.day-timer-stop:hover{background:#b91c1c}.day-timer-pause,.day-timer-resume{color:#374151;cursor:pointer;background:0 0;border:1px solid #6b7280;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:500}.day-total{color:#444;justify-content:flex-end;gap:16px;padding:16px 0 8px;font-size:15px;display:flex}.day-total strong{color:#1a2e3b;text-align:right;min-width:48px}.day-copy-wrap{padding:12px 0 4px}.day-copy-btn{color:#546e7a;cursor:pointer;background:0 0;border:1px dashed #b0bec5;border-radius:6px;padding:8px 16px;font-family:inherit;font-size:13px;transition:background .12s,border-color .12s,color .12s}.day-copy-btn:hover:not(:disabled){color:#1a5c8a;background:#f0f7ff;border-color:#4593c6}.day-copy-btn:disabled{opacity:.5;cursor:default}.week-view{padding:16px 0}.week-grid{border:1px solid #e0e4e8;border-radius:8px;font-size:13px;overflow:hidden}.wg-header,.wg-row,.wg-footer{border-bottom:1px solid #e8ecef;grid-template-columns:240px repeat(7,1fr) 72px 36px;display:grid}.wg-footer{border-bottom:none}.wg-header{background:#f8f9fa}.wg-label-col{border-right:1px solid #e8ecef;padding:10px 12px}.wg-day-col{text-align:center;border-right:1px solid #f0f2f4;padding:8px 4px}.wg-total-col{text-align:right;border-right:1px solid #f0f2f4;padding:8px;font-weight:600}.wg-remove-col{padding:4px}.wg-day-header{flex-direction:column;align-items:center;gap:2px;padding:8px 4px;display:flex}.wg-day-name{color:#888;text-transform:uppercase;font-size:11px;font-weight:600}.wg-day-date{color:#555;font-size:12px}.wg-today .wg-day-date{color:#e88a00;font-weight:700}.wg-row:hover{background:#fafbfc}.wg-project{color:#1a2e3b;font-weight:600}.wg-client{color:#888;font-weight:400}.wg-task{color:#666;margin-top:2px;font-size:12px}.wg-cell-btn{text-align:center;color:#1a2e3b;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;width:100%;min-height:32px;padding:6px 2px;font-family:inherit;font-size:13px;transition:border-color .1s,background .1s;display:flex}.wg-cell-btn:hover{background:#f0f7ff;border-color:#d0d7de}.wg-cell-btn--filled{color:#1a2e3b;font-weight:600}.wg-cell-btn--empty .wg-cell-dash{color:#ccc;font-weight:400}.wg-footer{background:#f8f9fa;font-weight:600}.wg-col-total{text-align:center;color:#444;border-right:1px solid #f0f2f4;padding:10px 4px}.wg-week-total{color:#1a2e3b;font-size:14px}.wg-remove-btn{color:#bbb;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:18px;line-height:1;transition:color .1s,background .1s}.wg-remove-btn:hover{color:#e74c3c;background:#fef2f2}.week-actions{align-items:center;gap:12px;margin-top:12px;display:flex}.btn-add-row{cursor:pointer;color:#444;background:0 0;border:1px solid #d0d7de;border-radius:6px;padding:7px 14px;font-size:13px;transition:background .1s}.btn-add-row:hover{background:#f5f6f7}.btn-primary-green{color:#fff;cursor:pointer;background:#3a8d5c;border:none;border-radius:6px;padding:8px 20px;font-size:14px;font-weight:500;transition:background .15s}.btn-primary-green:hover:not(:disabled){background:#2d7a4f}.btn-primary-green:disabled{opacity:.6;cursor:default}.btn-plain{cursor:pointer;color:#444;background:0 0;border:1px solid #d0d7de;border-radius:6px;padding:7px 16px;font-size:14px;transition:background .1s}.btn-plain:hover:not(:disabled){background:#f5f6f7}.btn-danger-text{color:#e74c3c;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;text-decoration:underline}.btn-danger-text:hover{color:#c0392b}.entry-modal{flex-direction:column;gap:12px;display:flex}.entry-modal-label{color:#555;margin-bottom:-4px;font-size:13px;font-weight:600}.entry-dd-wrap{position:relative}.entry-dd-trigger{cursor:pointer;text-align:left;background:#fff;border:1px solid #d0d7de;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:10px 12px;transition:border-color .1s;display:flex}.entry-dd-trigger:hover:not(:disabled){border-color:#999}.entry-dd-trigger:disabled{opacity:.5;cursor:default}.entry-dd-value{flex-direction:column;flex:1;display:flex}.entry-dd-secondary{color:#888;font-size:11px}.entry-dd-placeholder{color:#aaa;font-size:14px}.entry-dd-chevron{color:#888;flex-shrink:0;font-size:12px}.entry-dd-menu{z-index:100;background:#fff;border:1px solid #d0d7de;border-radius:6px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.entry-dd-search-wrap{padding:8px 8px 4px}.entry-dd-search{box-sizing:border-box;border:1px solid #d0d7de;border-radius:4px;width:100%;padding:6px 10px;font-size:13px}.entry-dd-search:focus{border-color:#3a8d5c;outline:none}.entry-dd-list{max-height:240px;padding:4px 0;overflow-y:auto}.entry-dd-group{color:#888;text-transform:uppercase;letter-spacing:.05em;padding:6px 12px 2px;font-size:11px;font-weight:700}.entry-dd-item{text-align:left;cursor:pointer;color:#1a2e3b;background:0 0;border:none;flex-direction:column;width:100%;padding:8px 12px;font-size:14px;transition:background .1s;display:flex}.entry-dd-item:hover{background:#f5f6f7}.entry-dd-item.selected{color:#fff;background:#1a2e3b}.entry-dd-item.selected .entry-dd-item-secondary{color:#a0b4c2}.entry-dd-item-secondary{color:#888;font-size:11px}.entry-dd-item-primary{font-weight:500}.entry-dd-empty{text-align:center;color:#aaa;padding:12px;font-size:13px}.entry-row{gap:10px;display:flex}.entry-notes{border:1px solid #d0d7de;border-radius:6px;flex:1;padding:8px 12px;font-size:14px;transition:border-color .1s}.entry-notes:focus{border-color:#3a8d5c;outline:none}.entry-hours{text-align:center;color:#1a2e3b;border:1px solid #d0d7de;border-radius:6px;width:88px;padding:8px 12px;font-size:20px;font-weight:500;transition:border-color .1s}.entry-hours:focus{border-color:#3a8d5c;outline:none}.entry-timer-start{cursor:pointer;color:#374151;white-space:nowrap;background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:500}.entry-timer-start:hover{background:#e5e7eb}.entry-timer-running{align-items:center;gap:6px;display:flex}.entry-timer-display{color:#1a2e3b;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.entry-timer-stop{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:500}.entry-timer-stop:hover{background:#b91c1c}.entry-round-hint{color:#6b7280;text-align:right;margin-top:4px;font-size:11px}.ts-day-layout{align-items:flex-start;gap:16px;display:flex}.ts-day-layout>.day-view,.ts-day-layout>.day-empty{flex:1;min-width:0}.cal-sidebar{background:#fff;flex-direction:column;width:100%;height:100%;font-size:13px;display:flex}.cal-sidebar-header{border-bottom:1px solid #f0f2f4;justify-content:space-between;align-items:flex-start;padding:20px 14px 12px;display:flex}.cal-sidebar-label{color:#9ca3af;margin-bottom:1px;font-size:11px}.cal-sidebar-title{color:#374151;font-size:13px;font-weight:600}.cal-sidebar-close{color:#9ca3af;cursor:pointer;background:0 0;border:none;flex-shrink:0;margin-top:2px;padding:0 2px;font-size:14px;line-height:1}.cal-sidebar-close:hover{color:#374151}.cal-sidebar-consent{color:#555;flex-direction:column;gap:8px;padding:12px;display:flex}.cal-sidebar-consent p{margin:0;font-size:12px}.cal-sidebar-events{flex-direction:column;display:flex}.cal-sidebar-event{cursor:pointer;border-bottom:1px solid #f3f4f6;padding:8px 12px;transition:background .1s}.cal-sidebar-event:last-child{border-bottom:none}.cal-sidebar-event:hover{background:#f0fdf4}.cal-sidebar-event-title{color:#1a2e3b;margin-bottom:3px;font-size:12px;font-weight:600;line-height:1.3}.cal-sidebar-event-time{color:#6b7280;margin-bottom:1px;font-size:11px}.cal-sidebar-event-duration{color:#9ca3af;font-size:11px}.entry-error{color:#e74c3c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:8px 12px;font-size:13px}.entry-footer{justify-content:space-between;align-items:center;padding-top:4px;display:flex}.entry-footer-left{gap:10px;display:flex}.ts-submission-banner{flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 140px;font-size:13px;font-weight:500;display:flex}.ts-submission-banner--submitted{color:#92400e;background:#fffbeb;border-bottom:1px solid #fde68a}.ts-submission-banner--approved{color:#166534;background:#f0fdf4;border-bottom:1px solid #bbf7d0}.ts-submission-banner--rejected{color:#991b1b;background:#fef2f2;border-bottom:1px solid #fecaca}.ts-submission-msg{flex:1}.ts-submission-action{cursor:pointer;color:inherit;background:0 0;border:1px solid;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:500;transition:background .1s}.ts-submission-action:hover{background:#0000000f}.ts-submission-action--primary{color:#fff;background:#166534;border-color:#166534}.ts-submission-action--primary:hover{background:#14532d}.ts-submit-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#1a2e3b;border:none;border-radius:6px;flex-shrink:0;padding:6px 14px;font-size:12px;font-weight:500;transition:background .15s}.ts-submit-btn:hover:not(:disabled){background:#243d4e}.ts-submit-btn:disabled{opacity:.5;cursor:default}.ts-timer-start{color:#555;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #d0d7de;border-radius:6px;margin-top:4px;padding:5px 10px;font-size:12px;transition:background .1s}.ts-timer-start:hover:not(:disabled){background:#f5f6f7}.ts-timer-start:disabled{opacity:.4;cursor:default}.ts-timer-running{flex-direction:column;align-items:center;gap:6px;padding:8px 0;display:flex}.ts-timer-display{font-variant-numeric:tabular-nums;color:#e88a00;letter-spacing:.02em;font-size:18px;font-weight:700}.ts-timer-stop{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:600;transition:background .15s}.ts-timer-stop:hover{background:#b91c1c}.ts-teammates-bar{flex:1;align-items:center;gap:10px;padding:0 16px;display:flex}.ts-teammates-label{color:#555;white-space:nowrap;font-size:13px}.ts-teammates-select{color:#1a2e3b;cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:6px;outline:none;min-width:200px;padding:6px 10px;font-family:inherit;font-size:13px}.ts-teammates-select:focus{border-color:#3a8d5c}.rounding-overlay{z-index:10;background:#fffffff2;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.rounding-box{text-align:center;background:#fff;border:1px solid #e5e7eb;border-radius:10px;width:100%;max-width:320px;padding:24px;box-shadow:0 8px 24px #0000001f}.rounding-title{color:#1a2e3b;margin:0 0 6px;font-size:15px;font-weight:600}.rounding-sub{color:#555;margin:0 0 16px;font-size:13px}.rounding-choices{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.rounding-btn{cursor:pointer;color:#1a2e3b;background:#f8f9fa;border:1px solid #d0d7de;border-radius:6px;width:100%;padding:9px 14px;font-family:inherit;font-size:13px;transition:background .1s}.rounding-btn:hover{background:#e8f4ed;border-color:#3a8d5c}.rounding-btn--plain{color:#888}.rounding-btn--plain:hover{background:#f5f6f7;border-color:#d0d7de}.rounding-cancel{color:#888;cursor:pointer;background:0 0;border:none;font-size:12px;text-decoration:underline}.proj-pagination{border-top:1px solid #e5e7eb;align-items:center;gap:12px;margin-bottom:8px;padding:12px 0 4px;font-size:14px;display:flex}.proj-pagination-info{color:#6b7280;flex:1}.proj-pagination-page{color:#374151;font-weight:500}.btn-page{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:5px 12px;font-size:13px;transition:background .15s}.proj-page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.proj-page-header-left{align-items:center;gap:8px;display:flex}.proj-page-header-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.proj-filter-select{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px}.proj-filter-select:focus{border-color:#4593c6;box-shadow:0 0 0 3px #4593c626}.proj-search-wrap{position:relative}.proj-search-icon{color:#9ca3af;pointer-events:none;font-size:16px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.proj-search{color:#111;background:#fff;border:1px solid #d1d5db;border-radius:6px;width:200px;padding:8px 12px 8px 32px;font-family:inherit;font-size:14px}.proj-search:focus{border-color:#4593c6;outline:none;box-shadow:0 0 0 3px #4593c61a}.proj-toolbar{align-items:center;gap:8px;margin-bottom:24px;display:flex}.btn-filter{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:7px 14px;font-family:inherit;font-size:14px;font-weight:500;transition:background .15s}.btn-filter:hover{background:#eeeff1}.btn-filter--active{color:#111;background:#f3f4f6;border-color:#9ca3af}.proj-list{border:1px solid #e5e7eb;border-radius:8px;overflow:visible}.proj-list-header{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;background:#fde8cc;border-bottom:1px solid #e5e7eb;border-radius:8px 8px 0 0;grid-template-columns:1fr auto 128px;align-items:stretch;padding:0 16px;font-size:12px;font-weight:600;display:grid}.proj-col-name{padding:4px 0}.proj-costs-group{border-left:1px solid #e5e7eb;border-right:1px solid #e5e7eb;flex-direction:column;display:flex}.proj-costs-label{text-align:center;letter-spacing:.08em;color:#9ca3af;border-bottom:1px solid #d1d5db;padding:6px 0 2px;font-size:10px}.proj-costs-sub{grid-template-columns:110px 110px 240px;padding:4px 0 6px;display:grid}.proj-costs-sub>span{text-align:right;padding-right:12px}.proj-col-remaining-label{padding-left:8px;text-align:left!important;padding-right:0!important}.proj-client-group{border-bottom:1px solid #e5e7eb;margin-bottom:20px}.proj-client-group:last-child{border-bottom:none;margin-bottom:0}.proj-client-header{color:#166534;background:#dcfce7;border-bottom:1px solid #e5e7eb;padding:5px 16px;font-size:13px;font-weight:600;text-decoration:none;display:block}.proj-client-header:hover{color:#4593c6;text-decoration:underline}.proj-row{background:#f3f4f6;border-bottom:1px solid #f3f4f6;grid-template-columns:1fr auto 128px;align-items:center;padding:5px 16px;transition:background .1s;display:grid}.proj-row:nth-child(2n){background:#cce4f4}.proj-row:last-child{border-bottom:none}.proj-row:hover{background:#b8d9ef}.proj-row--archived{opacity:.55}.proj-col-name{flex-direction:column;gap:4px;min-width:0;display:flex}.proj-name-row{align-items:center;gap:6px;display:flex}.proj-pin-icon{flex-shrink:0;font-size:12px}.proj-name{color:#111;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.proj-name--link{color:#111;text-decoration:none}.proj-name--link:hover{color:#4593c6;text-decoration:underline}.proj-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.proj-type-badge{color:#374151;background:#e5e7eb;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.proj-type-badge--timeandmaterials{color:#1e40af;background:#dbeafe}.proj-type-badge--fixedfee{color:#92400e;background:#fef3c7}.proj-type-badge--nonbillable{color:#6b7280;background:#f3f4f6}.proj-code{color:#9ca3af;font-family:monospace;font-size:11px}.proj-costs-cells{border-left:1px solid #f0f0f0;border-right:1px solid #f0f0f0;grid-template-columns:110px 110px 240px;align-items:center;display:grid}.proj-col-num{color:#374151;text-align:right;font-variant-numeric:tabular-nums;padding-right:12px;font-size:13px}.proj-no-budget{color:#d1d5db}.proj-col-remaining{align-items:center;padding-left:8px;display:flex}.proj-budget-cell{align-items:center;gap:8px;width:100%;display:flex}.proj-budget-bar-wrap{background:#ced0d3;border-radius:2px;flex:1;min-width:40px;height:10px;overflow:hidden}.proj-budget-bar-fill{background:#4593c6;height:100%;transition:width .3s}.proj-budget-bar-fill--over{background:#dc2626}.proj-budget-remaining{color:#374151;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;min-width:44px;font-size:12px}.proj-budget-remaining--over{color:#dc2626;font-weight:600}.proj-budget-pct{color:#9ca3af;white-space:nowrap;font-size:11px}.proj-col-actions{justify-content:flex-end;display:flex}.proj-actions-menu{position:relative}.proj-actions-dropdown{z-index:200;background:#fff;border:1px solid #e5e7eb;border-radius:8px;min-width:130px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 4px 16px #0000001a}.proj-actions-dropdown button{text-align:left;color:#374151;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 16px;font-family:inherit;font-size:14px;display:block}.proj-actions-dropdown button:hover{background:#eeeff1}.proj-actions-dropdown button.danger{color:#dc2626}.proj-actions-dropdown button.danger:hover{background:#fef2f2}.proj-actions-divider{background:#f3f4f6;height:1px;margin:4px 0}.proj-action-disabled{opacity:.4;cursor:not-allowed!important}.proj-modal-overlay{z-index:1000;background:#00000059;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.proj-modal{background:#fff;border-radius:12px;width:440px;max-width:90vw;box-shadow:0 8px 32px #0000002e}.proj-modal-header{border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.proj-modal-header h2{margin:0;font-size:18px;font-weight:600}.proj-modal-close{color:#9ca3af;cursor:pointer;background:0 0;border:none;padding:4px;font-size:18px;line-height:1}.proj-modal-close:hover{color:#374151}.proj-modal-body{padding:20px 24px}.proj-modal-body p{color:#374151;margin:0 0 12px;font-size:14px;line-height:1.6}.proj-modal-hint{font-family:monospace;color:#6b7280!important;font-size:13px!important}.proj-modal-actions{justify-content:flex-end;padding:12px 24px 20px;display:flex}.proj-form-page{max-width:800px;padding:32px 40px}.proj-form-header{margin-bottom:32px}.proj-form-header h1{color:#1a2e3b;margin:0;font-size:28px;font-weight:600}.proj-form{flex-direction:column;gap:0;display:flex}.proj-form-section{border-top:1px solid #e5e7eb;padding:24px 0}.proj-form-field{align-items:flex-start;gap:24px;margin-bottom:20px;display:flex}.proj-form-field:last-child{margin-bottom:0}.proj-form-field--horizontal>label{color:#374151;flex-shrink:0;width:140px;padding-top:9px;font-size:14px;font-weight:500}.proj-form-control{flex:1;min-width:0}.proj-form-control input[type=text],.proj-form-control input[type=date],.proj-form-control input[type=number],.proj-form-control select,.proj-form-control textarea{color:#111;box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.proj-form-control input:focus,.proj-form-control select:focus,.proj-form-control textarea:focus{border-color:#4593c6;box-shadow:0 0 0 3px #4593c626}.proj-form-control textarea{resize:vertical}.proj-input-narrow{max-width:160px;width:auto!important}.proj-form-dates{align-items:center;gap:8px;display:flex}.proj-dates-to{color:#6b7280;font-size:14px}.proj-form-hint{color:#6b7280;margin-top:6px;font-size:12px}.required{color:#dc2626}.proj-type-selector{border:1px solid #d1d5db;border-radius:6px;grid-template-columns:repeat(3,1fr);gap:0;display:grid;overflow:hidden}.proj-type-btn{text-align:center;cursor:pointer;background:#fff;border:none;border-right:1px solid #d1d5db;flex-direction:column;align-items:center;gap:4px;padding:14px 12px;font-family:inherit;transition:background .15s;display:flex}.proj-type-btn:last-child{border-right:none}.proj-type-btn:hover{background:#eeeff1}.proj-type-btn--active{background:#fff8f0;border-bottom:3px solid #f97316}.proj-type-btn-label{color:#111;font-size:14px;font-weight:600}.proj-type-btn-sub{color:#6b7280;font-size:11px;line-height:1.3}.proj-budget-row{align-items:center;gap:10px;margin-top:16px;display:flex}.proj-budget-label{color:#374151;font-size:14px;font-weight:500}.proj-tasks-section{border:1px solid #e5e7eb;border-radius:8px;overflow:visible}.proj-tasks-section>:first-child{border-radius:8px 8px 0 0}.proj-tasks-section>:last-child{border-radius:0 0 8px 8px}.proj-tasks-header{color:#374151;background:#eeeff1;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.proj-tasks-col-header{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-right:4px;font-size:12px;font-weight:600}.proj-tasks-empty{color:#9ca3af;margin:0;padding:16px;font-size:14px}.proj-task-row{border-bottom:1px solid #f3f4f6;align-items:center;gap:10px;padding:10px 16px;display:flex}.proj-task-row:last-of-type{border-bottom:none}.proj-task-remove{color:#9ca3af;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 4px;font-size:16px;line-height:1}.proj-task-remove:hover{color:#dc2626}.proj-task-name{color:#111;flex:1;font-size:14px}.proj-task-billable{cursor:pointer;accent-color:#f97316;flex-shrink:0;width:16px;height:16px}.proj-task-search-wrap{border-top:1px solid #e5e7eb;padding:10px 16px;position:relative}.proj-task-search{color:#111;box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:14px}.proj-task-search:focus{border-color:#4593c6;box-shadow:0 0 0 3px #4593c626}.proj-task-dropdown{z-index:200;background:#fff;border:1px solid #e5e7eb;border-radius:6px;max-height:240px;position:absolute;top:calc(100% - 6px);left:16px;right:16px;overflow:hidden auto;box-shadow:0 4px 16px #0000001a}.proj-task-dropdown button{text-align:left;color:#374151;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #f3f4f6;width:100%;padding:10px 14px;font-family:inherit;font-size:14px;display:block}.proj-task-dropdown button:last-child{border-bottom:none}.proj-task-dropdown button:hover{background:#eeeff1}.proj-task-searching,.proj-task-no-results{color:#9ca3af;padding:10px 14px;font-size:14px}.proj-form-actions{border-top:1px solid #e5e7eb;align-items:center;gap:12px;margin-top:8px;padding-top:24px;display:flex}.btn-save-project{padding:10px 24px;font-size:15px}.proj-lock-btn{color:#6b7280;margin-left:auto}.proj-lock-btn--locked{color:#d97706;border-color:#d97706}.proj-form-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;margin-bottom:12px;padding:8px 12px;font-size:13px}.proj-common-hint{color:#6b7280;margin:0 0 16px;font-size:13px;font-style:italic}.proj-member-email{color:#6b7280;margin-left:auto;font-size:12px}.proj-tasks-col-rate{margin-right:8px}.proj-member-rate{color:#111;text-align:right;border:1px solid #d1d5db;border-radius:5px;outline:none;flex-shrink:0;width:90px;margin-left:12px;padding:4px 8px;font-size:13px}.proj-member-rate:focus{border-color:#4593c6}.proj-member-rate::placeholder{color:#9ca3af;font-style:italic}.proj-member-dropdown-email{color:#9ca3af;margin-top:1px;font-size:11px;display:block}.ps-page{max-width:1100px;padding:32px 40px 48px}.ps-back{color:#6b7280;align-items:center;gap:6px;margin-bottom:20px;font-size:13px;text-decoration:none;display:inline-flex}.ps-back:hover{color:#111}.ps-header{margin-bottom:28px}.ps-client{color:#6b7280;margin-bottom:4px;font-size:13px}.ps-title-row{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:12px;display:flex}.ps-title-left{flex-direction:column;gap:8px;display:flex}.ps-name{color:#1a2e3b;margin:0;font-size:26px;font-weight:700;line-height:1.2}.ps-badges{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ps-type-badge{border-radius:4px;padding:3px 9px;font-size:12px;font-weight:600}.ps-type-badge--timeandmaterials{color:#0369a1;background:#e0f2fe}.ps-type-badge--fixedfee{color:#166534;background:#f0fdf4}.ps-type-badge--nonbillable{color:#6b7280;background:#f3f4f6}.ps-code{color:#9ca3af;background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;padding:3px 8px;font-size:12px}.ps-archived-badge{color:#856404;background:#fff3cd;border-radius:4px;padding:3px 9px;font-size:12px;font-weight:600}.ps-dates{color:#6b7280;font-size:13px}.ps-header-actions{flex-shrink:0;align-items:center;gap:10px;padding-top:4px;display:flex}.btn-secondary{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:500}.ps-actions-wrap{position:relative}.ps-btn-actions{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;align-items:center;gap:4px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:500;display:flex}.ps-btn-actions:hover{background:#f3f4f6}.ps-actions-dropdown{z-index:100;background:#fff;border:1px solid #e5e7eb;border-radius:8px;min-width:160px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.ps-actions-dropdown button{text-align:left;color:#374151;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 16px;font-family:inherit;font-size:14px;display:block}.ps-actions-dropdown button:hover{background:#f3f4f6}.ps-notes{color:#374151;border-top:1px solid #e5e7eb;padding-top:12px;font-size:14px;line-height:1.6}.ps-notes-toggle{color:#4593c6;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.ps-stats{gap:16px;margin-top:20px;margin-bottom:28px;display:flex}.ps-stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex:1;padding:20px 24px}.ps-stat-label{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-size:12px;font-weight:600}.ps-stat-value{color:#111;font-variant-numeric:tabular-nums;margin-bottom:10px;font-size:28px;font-weight:700;line-height:1.1}.ps-stat-value--money{font-size:24px}.ps-stat-sub{color:#9ca3af;margin-top:4px;font-size:12px}.ps-stat-sub-row{flex-wrap:wrap;gap:14px;display:flex}.ps-stat-sub-item{color:#6b7280;align-items:center;gap:5px;font-size:12px;display:flex}.ps-stat-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ps-stat-dot--bill{background:#4593c6}.ps-stat-dot--non{background:#cce4f7}.ps-budget-bar-wrap{background:#f3f4f6;border-radius:3px;width:100%;height:6px;margin:8px 0;overflow:hidden}.ps-budget-bar-fill{background:#4593c6;border-radius:3px;height:100%;transition:width .3s}.ps-budget-bar-fill--over{background:#dc2626}.ps-chart-section{background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:28px;padding:20px 24px}.ps-chart-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.ps-chart-tab-group{gap:8px;display:flex}.ps-chart-tab-btn{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.ps-chart-tab-btn:hover{color:#374151;background:#f3f4f6}.ps-chart-tab-btn.active{color:#c2410c;background:#fff8f0;border-color:#f97316;font-weight:600}.ps-tab-icon{flex-shrink:0}.ps-chart-nav{align-items:center;gap:6px;display:flex}.ps-chart-nav-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;font-family:inherit;font-size:16px;line-height:1;display:flex}.ps-chart-nav-btn:hover:not(:disabled){background:#f3f4f6}.ps-chart-nav-btn:disabled{opacity:.35;cursor:default}.ps-chart-nav-range{color:#374151;text-align:center;min-width:140px;font-size:12px}.ps-chart-svg{width:100%;display:block}.ps-chart-legend{color:#6b7280;justify-content:flex-end;align-items:center;gap:6px;margin-top:10px;font-size:12px;display:flex}.ps-legend-dot{border-radius:2px;flex-shrink:0;width:10px;height:10px;display:inline-block}.ps-legend-dot--bill{background:#4593c6}.ps-legend-dot--non{background:#cce4f7}.ps-legend-budget-line{vertical-align:middle;background:#f97316;width:20px;height:2px;display:inline-block}.ps-cumulative-wrap{position:relative}.ps-tooltip{pointer-events:none;z-index:200;background:#fff;border:1px solid #e5e7eb;border-radius:8px;min-width:220px;padding:14px 18px 16px;position:absolute;top:4px;box-shadow:0 4px 20px #00000021}.ps-tooltip-title{color:#111;white-space:nowrap;margin-bottom:10px;font-size:14px;font-weight:700}.ps-tooltip-grid{grid-template-columns:1fr 1fr;gap:6px 16px;display:grid}.ps-tooltip-metric-label{color:#6b7280;text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px;font-size:11px;font-weight:500}.ps-tooltip-metric-val{color:#111;font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.ps-tooltip-this-week{color:#6b7280;border-top:1px solid #f3f4f6;grid-column:1/-1;margin-top:2px;padding-top:6px;font-size:12px}.ps-tooltip-caret{border-top:8px solid #e5e7eb;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute;bottom:-9px;left:50%;transform:translate(-50%)}.ps-tooltip-caret:after{content:"";border-top:7px solid #fff;border-left:7px solid #0000;border-right:7px solid #0000;width:0;height:0;position:absolute;top:-9px;left:-7px}.ps-stat-label-pct{text-transform:none;letter-spacing:0;font-weight:400}.ps-breakdown-section{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.ps-breakdown-tabs{border-bottom:2px solid #e5e7eb;display:flex}.ps-breakdown-tab{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:500}.ps-breakdown-tab:hover{color:#111}.ps-breakdown-tab.active{color:#111;border-bottom-color:#e8520a;font-weight:600}.ps-breakdown-table{border-collapse:collapse;width:100%;font-size:14px}.ps-breakdown-table thead th{text-align:left;color:#6b7280;background:#f9fafb;border-bottom:1px solid #e5e7eb;padding:10px 16px;font-size:12px;font-weight:600}.ps-th-num{text-align:right!important}.ps-breakdown-table tbody tr:hover{background:#f9fafb}.ps-breakdown-table td{vertical-align:middle;border-bottom:1px solid #f3f4f6;padding:11px 16px}.ps-breakdown-table tbody tr:last-child td{border-bottom:none}.ps-breakdown-table tfoot td{background:#f9fafb;border-top:2px solid #e5e7eb;padding:10px 16px;font-size:13px}.ps-breakdown-name{color:#111;font-weight:500}.ps-breakdown-num{text-align:right;font-variant-numeric:tabular-nums}.ps-breakdown-pct{color:#9ca3af;margin-left:6px;font-size:12px}.ps-no-val{color:#d1d5db}.ps-empty{text-align:center;color:#9ca3af;padding:32px;font-size:14px}.ps-loading{color:#6b7280;padding:24px 0}.ps-error{color:#dc2626;padding:16px 0}.page-content{padding:32px 40px}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h2{color:#1a2e3b;margin:0;font-size:24px;font-weight:600}.page-actions{align-items:center;gap:8px;display:flex}.btn-primary{color:#fff;cursor:pointer;background:#4a9e4a;border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:background .15s;display:flex}.btn-primary:hover{background:#3d8a3d}.btn-secondary{color:#333;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:background .15s}.btn-secondary:hover{background:#eeeff1}.btn-danger{color:#dc2626;cursor:pointer;background:0 0;border:1px solid #fca5a5;border-radius:4px;padding:5px 12px;font-size:13px;transition:background .15s}.btn-danger:hover{background:#fef2f2}.btn-edit{color:#333;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:5px 12px;font-size:13px;transition:background .15s}.btn-edit:hover{background:#eeeff1}.search-bar{background:#fff;border:1px solid #d1d5db;border-radius:6px;align-items:center;gap:8px;width:300px;margin-bottom:8px;padding:8px 12px;display:flex}.search-bar input{color:#333;border:none;outline:none;flex:1;font-size:14px}.search-bar input::placeholder{color:#9ca3af}.list-item{background:#eeeff1;border:1px solid #e5e7eb;border-radius:6px;align-items:center;gap:12px;margin-bottom:8px;padding:12px 16px;display:flex}.list-item-name{color:#111;flex:1;font-size:14px;font-weight:600}.list-item-meta{color:#6b7280;font-size:13px}.list-item-actions{align-items:center;gap:8px;display:flex}.badge{color:#374151;background:#e5e7eb;border-radius:12px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-block}.badge-owner{color:#92400e;background:#fef3c7}.badge-admin{color:#1e40af;background:#dbeafe}.badge-manager{color:#5b21b6;background:#ede9fe}.badge-member{color:#374151;background:#f3f4f6}.badge-green{color:#166534;background:#dcfce7}.badge-gray{color:#6b7280;background:#f3f4f6}.badge-emp-fulltime{color:#166534;background:#dcfce7}.badge-emp-parttime{color:#854d0e;background:#fef9c3}.badge-emp-contractor{color:#9f1239;background:#ffe4e6}.filter-select{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:7px 12px;font-family:inherit;font-size:13px;font-weight:500}.empty-state{text-align:center;color:#9ca3af;padding:60px 0;font-size:15px}.member-row{background:#fff;border:1px solid #e5e7eb;border-radius:6px;align-items:center;gap:14px;margin-bottom:6px;padding:12px 16px;display:flex}.member-avatar-sm{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:flex}.member-info{flex-direction:column;flex:1;min-width:0;display:flex}.member-name{color:#111;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.member-email{color:#6b7280;font-size:13px}.member-you{color:#6b7280;background:#f3f4f6;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:500}.member-pending{color:#92400e;background:#fef3c7;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:500}.member-role-pills{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.member-role-pill{color:#374151;background:#e5e7eb;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:500}.role-member-search{box-sizing:border-box;border:1px solid #d1d5db;border-bottom:none;border-radius:6px 6px 0 0;outline:none;width:100%;padding:7px 12px;font-family:inherit;font-size:14px}.role-member-search:focus{border-color:#4593c6}.role-checklist{border:1px solid #e5e7eb;border-radius:6px;flex-direction:column;gap:8px;max-height:220px;padding:10px 12px;display:flex;overflow-y:auto}.role-checklist--searchable{border-radius:0 0 6px 6px}.role-selected-count{color:#4593c6;margin-top:4px;font-size:12px;font-weight:500}.role-check-item{color:#374151;cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.role-check-item input[type=checkbox]{cursor:pointer;flex-shrink:0;width:15px;height:15px}.client-row{background:#fff;border:1px solid #e5e7eb;border-radius:6px;align-items:center;gap:14px;margin-bottom:6px;padding:14px 16px;display:flex}.client-row-archived{opacity:.6}.client-info{flex-direction:column;flex:1;min-width:0;display:flex}.client-name{color:#111;font-size:14px;font-weight:600}.client-meta{color:#6b7280;margin-top:2px;font-size:13px}.client-form-row{gap:16px;display:flex}.client-form-row .form-field{flex:1}.form-field textarea{color:#111;resize:vertical;border:1px solid #d1d5db;border-radius:6px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.form-field textarea:focus{border-color:#4593c6}.form-optional{color:#9ca3af;font-size:12px;font-weight:400}.form-field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-field label{color:#374151;font-size:13px;font-weight:500}.form-field input,.form-field select{color:#111;border:1px solid #d1d5db;border-radius:6px;outline:none;padding:8px 12px;font-size:14px;transition:border-color .15s}.form-field input:focus,.form-field select:focus{border-color:#4593c6}.form-actions{justify-content:flex-end;align-items:center;gap:10px;padding-top:4px;display:flex}.form-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;margin-bottom:12px;padding:8px 12px;font-size:13px}.members-week-nav{border-bottom:1px solid #e5e7eb;align-items:center;gap:10px;margin-bottom:20px;padding-bottom:20px;display:flex}.members-nav-btn{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;transition:background .15s;display:flex}.members-nav-btn:hover{background:#f3f4f6}.members-week-label{color:#1a2e3b;font-size:26px;font-weight:700}.members-summary{border-bottom:1px solid #e5e7eb;align-items:center;gap:28px;margin-bottom:20px;padding:20px 0;display:flex}.members-stat{flex-shrink:0}.members-stat-label{color:#6b7280;margin-bottom:4px;font-size:13px}.members-stat-value{color:#1a2e3b;letter-spacing:-.5px;font-size:30px;font-weight:700}.members-stat-divider{background:#e5e7eb;flex-shrink:0;width:1px;height:48px}.members-legend{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.members-legend-row{color:#374151;align-items:center;gap:8px;font-size:14px;display:flex}.members-legend-dot{border-radius:3px;flex-shrink:0;width:14px;height:14px}.members-legend-dot--billable{background:#4593c6}.members-legend-dot--nonbillable{background:#93c5fd}.members-legend-text{min-width:90px}.members-legend-hours{color:#1a2e3b;font-size:15px;font-weight:700}.members-util-wrap{flex:1;min-width:200px}.members-util-bar{background:#f3f4f6;border-radius:4px;height:22px;margin-bottom:6px;display:flex;overflow:hidden}.members-util-fill{height:100%;transition:width .3s}.members-util-fill--billable{background:#4593c6}.members-util-fill--nonbillable{background:#93c5fd}.members-util-fill--over.members-util-fill--billable{background:#ef4444}.members-util-fill--over.members-util-fill--nonbillable{background:#fca5a5}.members-util-ticks{color:#9ca3af;font-size:11px;display:flex}.members-util-ticks span{text-align:center;flex:1}.members-table{border-collapse:collapse;width:100%}.members-table thead th{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;text-align:left;white-space:nowrap;border-bottom:1px solid #e5e7eb;padding:8px 12px;font-size:12px;font-weight:600}.members-table thead th.col-hours,.members-table thead th.col-util,.members-table thead th.col-cap,.members-table thead th.col-bill{text-align:right}.members-th-sort{cursor:pointer;-webkit-user-select:none;user-select:none}.members-th-sort:hover{color:#374151}.sort-icon{color:#9ca3af;margin-left:4px;font-size:10px}.sort-icon--active{color:#4593c6}.members-group-header td{background:#f9fafb;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:10px 12px 6px}.members-group-label{text-transform:uppercase;letter-spacing:.06em;color:#6b7280;font-size:12px;font-weight:700}.members-group-count{color:#9ca3af;margin-left:8px;font-size:12px;font-weight:500}.members-row{border-bottom:1px solid #f3f4f6}.members-row--even{background:#fff}.members-row--odd{background:#eef5fa}.members-row--even:hover{background:#f0f9ff}.members-row--odd:hover{background:#dbeafe}.members-row td{color:#111;vertical-align:middle;padding:10px 12px;font-size:14px}.col-name{width:auto}.col-hours{text-align:right;white-space:nowrap;width:72px}.col-bar{width:220px;min-width:140px}.col-util{text-align:right;white-space:nowrap;width:90px}.col-cap{text-align:right;white-space:nowrap;width:80px}.col-bill{text-align:right;white-space:nowrap;width:100px}.col-actions{white-space:nowrap;width:1px}.members-member{align-items:center;gap:10px;display:flex}.members-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:12px;font-weight:700;display:flex}.members-member-info{flex-direction:column;min-width:0;display:flex}.members-member-name{color:#111;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.members-row-bar{background:#f3f4f6;border-radius:3px;height:14px;display:flex;overflow:hidden}.members-row-fill{height:100%;transition:width .3s}.members-row-fill--billable{background:#4593c6}.members-row-fill--nonbillable{background:#93c5fd}.members-row-fill--over.members-row-fill--billable{background:#ef4444}.members-row-fill--over.members-row-fill--nonbillable{background:#fca5a5}.members-row-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.btn-link{color:#4593c6;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.btn-archived-link{color:#6b7280;cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:13px;transition:color .15s}.btn-archived-link:hover{color:#374151}.member-detail-page{background:#f9fafb;min-height:100%}.md-topbar{background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;gap:16px;padding:10px 40px;display:flex}.md-back-btn{color:#6b7280;cursor:pointer;background:0 0;border:none;padding:4px 0;font-family:inherit;font-size:14px;font-weight:500;transition:color .15s}.md-back-btn:hover{color:#111}.md-week-nav{align-items:center;gap:6px;margin-left:auto;display:flex}.md-nav-btn{color:#374151;cursor:pointer;background:0 0;border:1px solid #d1d5db;border-radius:4px;padding:4px 10px;font-family:inherit;font-size:14px;transition:background .15s}.md-nav-btn:hover{background:#f3f4f6}.md-week-label-btn{color:#374151;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-family:inherit;font-size:14px;font-weight:500;transition:background .15s}.md-week-label-btn:hover{background:#f3f4f6}.md-header{background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;gap:20px;padding:20px 40px;display:flex}.md-avatar-wrap{flex-shrink:0}.md-avatar{object-fit:cover;border-radius:50%;width:60px;height:60px}.md-avatar--initials{color:#fff;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex}.md-member-name{color:#111;margin:0 0 6px;font-size:20px;font-weight:700}.md-member-meta{align-items:center;gap:10px;display:flex}.md-member-email{color:#6b7280;font-size:14px}.md-body{align-items:flex-start;gap:24px;padding:24px 40px;display:flex}.md-sidebar{flex-direction:column;flex-shrink:0;gap:12px;width:272px;display:flex}.md-entries{flex:1;min-width:0}.md-stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px}.md-stat-row{align-items:center;gap:16px;margin-bottom:12px;display:flex}.md-stat{flex:1}.md-stat-value{color:#111;font-size:20px;font-weight:700}.md-stat-label{color:#9ca3af;margin-top:2px;font-size:12px}.md-stat-divider{background:#e5e7eb;width:1px;height:36px}.md-progress-bar{background:#f3f4f6;border-radius:4px;height:8px;margin-bottom:12px;display:flex;overflow:hidden}.md-progress-fill{height:100%;transition:width .3s}.md-progress-fill--billable{background:#4593c6}.md-progress-fill--nonbillable{background:#93c5fd}.md-bill-breakdown{flex-direction:column;gap:5px;display:flex}.md-bill-row{align-items:center;gap:8px;display:flex}.md-bill-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.md-bill-dot--billable{background:#4593c6}.md-bill-dot--nonbillable{background:#93c5fd}.md-bill-label{color:#374151;flex:1;font-size:13px}.md-bill-hours{color:#111;font-size:13px;font-weight:600}.md-card-title{text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;margin-bottom:12px;font-size:11px;font-weight:600}.md-day-grid{gap:2px;display:flex}.md-day-cell{text-align:center;flex:1}.md-day-cell--today .md-day-name{color:#4593c6;font-weight:700}.md-day-name{color:#9ca3af;text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:500}.md-day-hours{color:#111;font-size:12px;font-weight:600}.md-day-hours--zero{color:#d1d5db;font-weight:400}.md-stacked-bar{background:#f3f4f6;border-radius:5px;height:10px;margin-bottom:10px;display:flex;overflow:hidden}.md-stacked-segment{height:100%}.md-legend{flex-direction:column;gap:5px;display:flex}.md-legend-row{align-items:center;gap:8px;display:flex}.md-legend-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.md-legend-name{color:#374151;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.md-legend-hours{color:#111;flex-shrink:0;font-size:13px;font-weight:600}.md-legend-group{flex-direction:column;gap:4px;margin-top:6px;display:flex}.md-legend-group:first-child{margin-top:0}.md-legend-group-label{text-transform:uppercase;letter-spacing:.05em;color:#9ca3af;padding-bottom:2px;font-size:11px;font-weight:700}.md-legend-row--indented{padding-left:4px}.md-day-group{margin-bottom:24px}.md-day-header{background:#f3f4f6;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:6px;padding:7px 14px;display:flex}.md-day-date,.md-day-total{color:#6b7280;font-size:13px;font-weight:600}.md-entry{background:#fff;border:1px solid #e5e7eb;border-radius:6px;align-items:flex-start;gap:12px;margin-bottom:4px;padding:11px 14px;display:flex}.md-entry-left{flex:1;min-width:0}.md-entry-project{color:#111;font-size:14px;font-weight:600}.md-entry-client{color:#6b7280;font-weight:400}.md-entry-task{color:#6b7280;margin-top:2px;font-size:13px}.md-entry-notes{color:#9ca3af}.md-entry-hours{color:#111;flex-shrink:0;padding-top:1px;font-size:14px;font-weight:600}.md-day-footer{justify-content:flex-end;gap:12px;padding:6px 14px;font-size:13px;display:flex}.md-day-footer-label{color:#9ca3af}.md-day-footer-hours{color:#374151;font-weight:600}.approvals-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.approvals-header h2{color:#1a2e3b;margin:0;font-size:20px}.approvals-filters{background:#f0f2f4;border-radius:8px;gap:4px;padding:3px;display:flex}.approvals-filter-btn{color:#555;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:5px 14px;font-size:13px;transition:background .1s,color .1s}.approvals-filter-btn.active{color:#1a2e3b;background:#fff;font-weight:600;box-shadow:0 1px 3px #0000001a}.approvals-list{border:1px solid #e8ecef;border-radius:8px;overflow:hidden}.approvals-list-header,.approvals-row{grid-template-columns:2fr 2fr 1fr 1fr;align-items:center;gap:12px;padding:10px 16px;display:grid}.approvals-list-header{text-transform:uppercase;letter-spacing:.06em;color:#888;background:#f8f9fa;border-bottom:1px solid #e8ecef;font-size:11px;font-weight:600}.approvals-row{cursor:pointer;border-bottom:1px solid #f0f2f4;font-size:14px;transition:background .1s}.approvals-row:last-child{border-bottom:none}.approvals-row:hover{background:#f8f9fa}.approvals-name{color:#1a2e3b;font-weight:500}.approvals-week{color:#555;font-size:13px}.approvals-date{color:#888;font-size:13px}.approvals-status{border-radius:20px;justify-content:center;align-items:center;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.approvals-status--submitted{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.approvals-status--approved{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.approvals-status--rejected{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.sd-header{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:20px;display:flex}.sd-header h2{color:#1a2e3b;flex:1;margin:0;font-size:18px}.sd-back-btn{color:#444;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #d0d7de;border-radius:6px;padding:5px 12px;font-size:13px;transition:background .1s}.sd-back-btn:hover{background:#f5f6f7}.sd-status{border-radius:20px;flex-shrink:0;padding:4px 12px;font-size:12px;font-weight:600}.sd-status--submitted{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.sd-status--approved{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.sd-status--rejected{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.sd-meta{background:#f8f9fa;border:1px solid #e8ecef;border-radius:8px;flex-wrap:wrap;gap:20px;margin-bottom:20px;padding:12px 16px;display:flex}.sd-meta-item{color:#444;flex-direction:column;gap:2px;font-size:13px;display:flex}.sd-meta-label{text-transform:uppercase;letter-spacing:.05em;color:#888;font-size:11px;font-weight:600}.sd-rejection-reason{color:#991b1b;font-style:italic}.sd-summary{gap:20px;margin-bottom:20px;display:flex}.sd-summary-stat{background:#f8f9fa;border:1px solid #e8ecef;border-radius:8px;flex-direction:column;align-items:center;min-width:90px;padding:12px 20px;display:flex}.sd-stat-value{color:#1a2e3b;font-size:22px;font-weight:700}.sd-stat-label{color:#888;margin-top:2px;font-size:11px}.sd-actions{flex-wrap:wrap;align-items:flex-start;gap:8px;margin-bottom:20px;display:flex}.btn-approve{color:#fff;cursor:pointer;background:#166534;border:none;border-radius:6px;padding:8px 20px;font-size:14px;font-weight:500;transition:background .1s}.btn-approve:hover:not(:disabled){background:#14532d}.btn-approve:disabled{opacity:.5;cursor:default}.btn-reject-open{color:#991b1b;cursor:pointer;background:0 0;border:1px solid #fecaca;border-radius:6px;padding:8px 20px;font-size:14px;font-weight:500;transition:background .1s}.btn-reject-open:hover:not(:disabled){background:#fef2f2}.btn-reject-open:disabled{opacity:.5;cursor:default}.sd-reject-form{flex-direction:column;flex:1;gap:8px;min-width:300px;display:flex}.sd-reject-textarea{resize:vertical;border:1px solid #fecaca;border-radius:6px;outline:none;padding:8px 10px;font-size:13px}.sd-reject-textarea:focus{border-color:#f87171}.sd-reject-btns{gap:8px;display:flex}.btn-reject{color:#fff;cursor:pointer;background:#991b1b;border:none;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:500;transition:background .1s}.btn-reject:hover:not(:disabled){background:#7f1d1d}.btn-reject:disabled{opacity:.5;cursor:default}.btn-plain{color:#555;cursor:pointer;background:0 0;border:1px solid #d0d7de;border-radius:6px;padding:7px 14px;font-size:13px;transition:background .1s}.btn-plain:hover{background:#f5f6f7}.sd-error{color:#991b1b;align-self:center;font-size:13px}.sd-entries{border:1px solid #e8ecef;border-radius:8px;overflow:hidden}.sd-entries-header,.sd-entry-row{grid-template-columns:100px 1.5fr 1fr 2fr 80px;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:grid}.sd-entries-header{text-transform:uppercase;letter-spacing:.06em;color:#888;background:#f8f9fa;border-bottom:1px solid #e8ecef;font-size:11px;font-weight:600}.sd-entry-row{border-bottom:1px solid #f0f2f4}.sd-entry-row:last-child{border-bottom:none}.sd-entry-date{color:#888;font-variant-numeric:tabular-nums;font-size:12px}.sd-entry-project{font-size:13px}.sd-entry-client{color:#888}.sd-entry-task{color:#555}.sd-entry-notes{color:#555;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sd-no-notes{color:#ccc}.sd-hours-col{text-align:right;font-variant-numeric:tabular-nums}.sd-entry-hours{color:#1a2e3b;font-weight:500}.sd-entries-footer{color:#1a2e3b;background:#f8f9fa;border-top:1px solid #e8ecef;grid-template-columns:100px 1.5fr 1fr 2fr 80px;gap:12px;padding:10px 16px;font-size:13px;font-weight:600;display:grid}.sd-total{font-weight:700}.report-page{max-width:1200px;padding:32px 40px 48px}.report-header{border-bottom:1px solid #e5e7eb;margin-bottom:28px;padding:24px 0 20px}.period-nav{justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.period-nav-left{align-items:center;gap:12px;display:flex}.period-arrows{flex-shrink:0;gap:4px;display:flex}.period-arrow{cursor:pointer;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:6px;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;transition:background .15s;display:flex}.period-arrow:hover{background:#f3f4f6}.period-title{align-items:baseline;gap:10px;display:flex}.period-prefix{color:#6b7280;white-space:nowrap;font-size:28px;font-weight:700}.report-title{color:#111;margin:0;font-size:28px;font-weight:700}.period-nav-right{flex-shrink:0;position:relative}.mode-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-size:14px;font-weight:500;display:flex}.mode-btn:hover{background:#eeeff1}.mode-btn .chevron{color:#6b7280;font-size:11px}.mode-menu{z-index:100;background:#fff;border:1px solid #e5e7eb;border-radius:8px;min-width:160px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.mode-opt{text-align:left;color:#374151;cursor:pointer;background:0 0;border:none;width:100%;padding:9px 16px;font-size:14px;display:block}.mode-opt:hover{background:#f3f4f6}.mode-opt.active{color:#4593c6;background:#eef5fa;font-weight:600}.mode-custom{flex-direction:column;gap:6px;padding:14px 16px;display:flex}.mode-custom label{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.mode-custom input[type=date]{border:1px solid #d1d5db;border-radius:5px;width:100%;padding:6px 8px;font-size:13px}.mode-custom-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.btn-plain-sm{cursor:pointer;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:5px;padding:5px 12px;font-size:13px}.btn-plain-sm:hover{background:#f3f4f6}.btn-primary-sm{color:#fff;cursor:pointer;background:#4593c6;border:none;border-radius:5px;padding:5px 12px;font-size:13px;font-weight:600}.btn-primary-sm:hover{background:#357faa}.report-summary{background:#fff;border:1px solid #e5e7eb;border-radius:10px;align-items:flex-start;gap:0;margin-bottom:36px;padding:24px 32px;display:flex}.summary-hours{align-items:center;gap:24px;display:flex}.summary-hours-left{flex-shrink:0}.summary-divider{background:#e5e7eb;align-self:stretch;width:1px;margin:0 36px}.summary-money{flex:1}.summary-capacity{flex-shrink:0}.summary-label{color:#6b7280;margin-bottom:4px;font-size:13px}.summary-value{color:#111;font-variant-numeric:tabular-nums;margin-bottom:12px;font-size:30px;font-weight:700}.summary-value--money{font-size:26px}.summary-note{color:#9ca3af;margin-top:8px;font-size:12px}.summary-donut-row{align-items:center;gap:16px;display:flex}.donut-svg{flex-shrink:0}.donut-label{fill:#111;font-size:18px;font-weight:700}.summary-legend{flex-direction:column;gap:8px;display:flex}.legend-row{align-items:center;gap:8px;font-size:13px;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.legend-dot--billable{background:#4593c6}.legend-dot--non{background:#cce4f7}.legend-text{color:#374151;min-width:88px}.legend-num{color:#111;font-variant-numeric:tabular-nums;font-weight:600}.group-tabs{border-bottom:2px solid #e5e7eb;gap:0;margin-bottom:20px;display:flex}.group-tab{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 18px;font-size:14px;font-weight:500;transition:color .15s,border-color .15s}.group-tab:hover{color:#111}.group-tab.active{color:#111;border-bottom-color:#e8520a;font-weight:600}.report-table-wrap{overflow-x:auto}.report-table{border-collapse:collapse;width:100%;font-size:14px}.report-table thead th{text-align:left;color:#6b7280;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:#eeeff1;border-bottom:1px solid #e5e7eb;padding:10px 12px;font-size:12px;font-weight:600}.report-table thead th:hover{color:#111}.sort-icon{opacity:.4;margin-left:4px;font-size:11px}.sort-icon--active{opacity:1;color:#4593c6}.report-table tbody tr{border-bottom:1px solid #f3f4f6}.report-table tbody tr:hover{background:#eeeff1}.report-row--clickable{cursor:pointer}.report-table td{vertical-align:middle;padding:11px 12px}.col-name{min-width:200px}.col-secondary{color:#6b7280;min-width:160px}.col-hours{width:180px}.col-capacity{text-align:right;white-space:nowrap;width:130px}.col-bill-hours{white-space:nowrap;width:160px}.col-bill-amt{text-align:right;width:140px}.report-table thead th.col-hours,.report-table thead th.col-capacity,.report-table thead th.col-bill-hours,.report-table thead th.col-bill-amt,.report-table td.col-hours,.report-table td.col-capacity,.report-table td.col-bill-hours,.report-table td.col-bill-amt{text-align:right}.item-name{color:#111;font-weight:500}.item-code{color:#6b7280;font-size:12px}.hours-cell{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.hours-num{font-variant-numeric:tabular-nums;font-weight:500}.hours-bar-wrap{background:#f3f4f6;border-radius:3px;width:100%;height:14px;overflow:hidden}.hours-bar{background:#4593c6;border-radius:3px;height:100%;transition:width .3s}.bill-hours-num{font-variant-numeric:tabular-nums}.bill-pct{color:#9ca3af;margin-left:4px;font-size:12px}.no-rate{color:#d1d5db}.report-table tfoot tr{background:#eeeff1;border-top:2px solid #e5e7eb}.report-table tfoot td{padding:11px 12px}.foot-label{color:#374151;font-size:13px;font-weight:600}.foot-num{font-variant-numeric:tabular-nums;font-weight:600}.report-table tfoot td.col-hours,.report-table tfoot td.col-capacity,.report-table tfoot td.col-bill-hours,.report-table tfoot td.col-bill-amt{text-align:right}.empty-row{text-align:center;color:#9ca3af;padding:40px!important}.report-loading{color:#6b7280;padding:24px 0}.report-error{color:#dc2626;padding:16px 0}.dtr-page{max-width:1200px;padding:32px 40px}.dtr-title-bar{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.dtr-title{color:#1a2e3b;margin:0;font-size:22px;font-weight:700;line-height:1.3}.dtr-title-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:24px;display:flex}.dtr-filter-panel{background:#fdf6ec;border:1px solid #e5d9c8;border-radius:8px;margin-bottom:24px;padding:20px 24px}.dtr-filter-row{align-items:center;gap:12px;margin-bottom:12px;display:flex}.dtr-filter-row:last-child{margin-bottom:0}.dtr-filter-label{color:#374151;text-align:right;min-width:80px;font-size:13px;font-weight:500}.dtr-filter-select{color:#111;appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 10px center no-repeat;border:1px solid #d1d5db;border-radius:6px;outline:none;min-width:220px;padding:7px 28px 7px 10px;font-size:14px;transition:border-color .15s}.dtr-filter-select:focus{border-color:#4593c6}.dtr-checkbox-label{color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:13px;display:flex}.dtr-filter-actions{border-top:1px solid #e5d9c8;justify-content:flex-end;margin-top:16px;padding-top:16px;display:flex}.dtr-timeframe-wrap{align-items:center;gap:4px;display:flex;position:relative}.dtr-timeframe-menu{min-width:180px}.dtr-arrow{cursor:pointer;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:5px 9px;font-size:14px;transition:background .15s}.dtr-arrow:hover{background:#f3f4f6}.dtr-timeframe-btn{min-width:160px}.dtr-custom-dates{flex-direction:column;gap:6px;padding:12px 14px;display:flex}.dtr-custom-dates label{color:#6b7280;font-size:12px;font-weight:500}.dtr-custom-dates input[type=date]{color:#111;border:1px solid #d1d5db;border-radius:4px;outline:none;padding:5px 8px;font-size:13px}.dtr-custom-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.dtr-dropdown-wrap{position:relative}.dtr-dropdown-menu{z-index:100;background:#fff;border:1px solid #d1d5db;border-radius:8px;min-width:140px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.dtr-dropdown-item{color:#1a2e3b;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:9px 14px;font-size:14px;transition:background .12s;display:flex}.dtr-dropdown-item:hover{background:#f3f4f6}.dtr-dropdown-item.active{color:#4593c6;font-weight:600}.dtr-export-icon{font-size:15px}.dtr-ctrl-btn{color:#1a2e3b;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d1d5db;border-radius:6px;align-items:center;gap:5px;padding:7px 13px;font-size:13px;font-weight:500;transition:background .15s;display:flex}.dtr-ctrl-btn:hover{background:#f3f4f6}.chevron{opacity:.7;font-size:11px}.dtr-print-btn{padding:7px 10px}.dtr-summary{border-bottom:1px solid #e5e7eb;align-items:flex-start;gap:48px;margin-bottom:20px;padding:24px 0;display:flex}.dtr-summary-label{color:#6b7280;margin-bottom:4px;font-size:13px}.dtr-summary-total{color:#1a2e3b;font-size:36px;font-weight:700;line-height:1.1}.dtr-summary-sub{color:#6b7280;margin-top:4px;font-size:13px}.dtr-summary-right{flex-direction:column;gap:6px;padding-top:4px;display:flex}.dtr-summary-tag{color:#374151;font-size:13px}.dtr-controls{justify-content:space-between;align-items:center;gap:12px;margin-bottom:0;padding-bottom:16px;display:flex}.dtr-controls-left{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.dtr-controls-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.dtr-ctrl-group{align-items:center;gap:6px;display:flex}.dtr-ctrl-label{color:#374151;white-space:nowrap;font-size:13px}.dtr-ctrl-select{color:#111;appearance:none;cursor:pointer;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 8px center no-repeat;border:1px solid #d1d5db;border-radius:6px;outline:none;padding:6px 28px 6px 10px;font-size:13px}.dtr-ctrl-select:focus{border-color:#4593c6}.dtr-multi-wrap{flex:1;min-width:360px;position:relative}.dtr-multi-input{cursor:text;background:#fff;border:1px solid #d1d5db;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;min-height:38px;padding:6px 10px;display:flex}.dtr-multi-input:focus-within{border-color:#4593c6}.dtr-pill{color:#1a2e3b;text-overflow:ellipsis;white-space:nowrap;background:#fff7f0;border:1px solid #e8c9a6;border-radius:20px;align-items:center;gap:4px;max-width:340px;padding:2px 8px 2px 10px;font-size:13px;display:inline-flex;overflow:hidden}.dtr-pill-remove{cursor:pointer;color:#b08060;background:0 0;border:none;flex-shrink:0;align-items:center;padding:0 0 0 2px;font-size:15px;line-height:1;display:flex}.dtr-pill-remove:hover{color:#1a2e3b}.dtr-multi-search{color:#111;background:0 0;border:none;outline:none;flex:1;min-width:80px;padding:2px 0;font-size:13px}.dtr-multi-menu{z-index:200;background:#fff;border:1px solid #d1d5db;border-radius:8px;max-height:240px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.dtr-multi-option{color:#1a2e3b;text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:9px 14px;font-size:13px;transition:background .1s;display:block}.dtr-multi-option:hover{background:#f3f4f6}.dtr-table-wrap{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.dtr-table{border-collapse:collapse;width:100%;font-size:13px}.dtr-table thead tr{background:#f9fafb;border-bottom:1px solid #e5e7eb}.dtr-table th{text-align:left;color:#6b7280;text-transform:uppercase;letter-spacing:.03em;padding:10px 12px;font-size:12px;font-weight:600}.dtr-col-check{width:36px}.dtr-col-client{width:110px}.dtr-col-project,.dtr-col-task{width:200px}.dtr-col-roles{width:160px}.dtr-col-person{width:130px}.dtr-col-hours{text-align:right;width:70px}.dtr-group-header{background:#f3f4f6}.dtr-group-label{color:#374151;padding:8px 12px;font-size:13px;font-weight:600}.dtr-group-hours{text-align:right;color:#374151;padding:8px 12px;font-size:13px;font-weight:600}.dtr-entry-row{border-top:1px solid #e5e7eb;transition:background .1s}.dtr-entry-row:hover{background:#f9fafb}.dtr-entry-row td{vertical-align:top;color:#1a2e3b;padding:10px 12px}.dtr-hours-billable{color:#1a73e8;font-weight:500}.dtr-hours-nonbill{color:#6b7280}.dtr-muted{color:#9ca3af}.dtr-notes-row{border-top:none}.dtr-notes-row:hover{background:#f9fafb}.dtr-notes-cell{color:#6b7280;padding:0 12px 10px;font-size:12px;font-style:italic}.dtr-foot-row{background:#f9fafb;border-top:2px solid #e5e7eb}.dtr-foot-label{color:#374151;padding:10px 12px;font-size:13px;font-weight:600}.dtr-foot-hours{text-align:right;color:#1a2e3b;padding:10px 12px;font-size:13px;font-weight:700}.dtr-empty,.dtr-loading{text-align:center;color:#9ca3af;padding:60px 0;font-size:15px}@media print{.dtr-title-bar button,.dtr-filter-panel,.dtr-controls,.dtr-title-actions{display:none!important}.dtr-page{max-width:none;padding:0}.dtr-table-wrap{border:none;border-radius:0}.dtr-table{font-size:11px}.dtr-entry-row td,.dtr-notes-cell{padding:6px 8px}}.br-page{max-width:1000px}.br-header-row{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e5e7eb;grid-template-columns:1fr 110px 110px 120px 160px 60px;gap:8px;margin-bottom:8px;padding:8px 12px;font-size:12px;font-weight:600;display:grid}.br-client-group{margin-bottom:24px}.br-client-label{color:#374151;padding:4px 12px;font-size:13px;font-weight:600;text-decoration:none;display:block}.br-client-label:hover{color:#4593c6;text-decoration:underline}.br-row{border-bottom:1px solid #f3f4f6;grid-template-columns:1fr 110px 110px 120px 160px 60px;align-items:center;gap:8px;padding:10px 12px;font-size:14px;display:grid}.br-row--archived{opacity:.55}.br-row:hover{background:#f9fafb}.br-col-name{align-items:center;gap:8px;min-width:0;display:flex}.br-proj-link{color:#111;white-space:nowrap;text-overflow:ellipsis;font-weight:500;text-decoration:none;overflow:hidden}.br-proj-link:hover{color:#4593c6;text-decoration:underline}.br-type-badge{white-space:nowrap;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:11px;font-weight:500}.br-type-badge--timeandmaterials{color:#1d4ed8;background:#dbeafe}.br-type-badge--fixedfee{color:#92400e;background:#fef3c7}.br-archived-badge{color:#6b7280;background:#f3f4f6;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:11px}.br-col-budget,.br-col-spent,.br-col-remaining,.br-col-pct{text-align:right;font-variant-numeric:tabular-nums;color:#374151}.br-over{color:#dc2626;font-weight:600}.br-muted{color:#9ca3af}.br-muted--sm{font-size:12px}.br-bar-wrap{background:#e5e7eb;border-radius:4px;height:8px;overflow:hidden}.br-bar-fill{background:#4593c6;border-radius:4px;height:100%;transition:width .2s}.br-bar-fill--over{background:#dc2626}.unv-page{max-width:900px}.unv-summary{border-bottom:1px solid #e5e7eb;align-items:baseline;gap:12px;margin-bottom:24px;padding:16px 0 24px;display:flex}.unv-summary-label{color:#6b7280;font-size:14px}.unv-summary-value{color:#111;font-size:24px;font-weight:600}.unv-header-row{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e5e7eb;grid-template-columns:1fr 150px 200px 120px;gap:8px;margin-bottom:8px;padding:6px 12px;font-size:12px;font-weight:600;display:grid}.unv-client-group{margin-bottom:32px}.unv-client-header{background:#f9fafb;border-radius:6px;align-items:center;gap:12px;margin-bottom:4px;padding:10px 12px;display:flex}.unv-client-name{color:#111;flex:1;font-size:14px;font-weight:600}.unv-client-hours{color:#6b7280;font-size:13px}.unv-invoice-btn{margin-left:auto;padding:6px 12px;font-size:13px}.unv-row{border-bottom:1px solid #f3f4f6;grid-template-columns:1fr 150px 200px 120px;align-items:center;gap:8px;padding:10px 12px;font-size:14px;display:grid}.unv-row:hover{background:#f9fafb}.unv-col-name{align-items:center;gap:8px;display:flex}.unv-proj-name{color:#111;font-weight:500}.unv-proj-code{color:#9ca3af;font-family:monospace;font-size:12px}.unv-col-hours{text-align:right;font-variant-numeric:tabular-nums;color:#374151;font-weight:500}.unv-col-last{color:#374151;font-size:13px}.unv-last-amount{color:#6b7280}.unv-muted{color:#9ca3af;font-style:italic}.inv-page{max-width:1100px;padding:28px 40px 48px}.inv-page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.inv-page-header-left{align-items:center;gap:16px;display:flex}.inv-page-title{color:#1a2e3b;margin:0;font-size:26px;font-weight:700}.inv-btn-new{color:#fff;cursor:pointer;background:#3a8d5c;border:none;border-radius:6px;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s}.inv-btn-new:hover{background:#2d7a4f}.inv-search-wrap{position:relative}.inv-search-icon{color:#9ca3af;pointer-events:none;font-size:16px;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.inv-search{color:#111;border:1px solid #d1d5db;border-radius:6px;width:260px;padding:8px 12px 8px 32px;font-family:inherit;font-size:14px}.inv-search:focus{border-color:#4593c6;outline:none;box-shadow:0 0 0 3px #4593c61a}.inv-wizard{background:#fff;border:1px solid #f97316;border-radius:8px;margin-bottom:24px;padding:20px 24px}.inv-wizard--wide{max-width:100%}.inv-wizard-title{color:#1a2e3b;margin:0 0 20px;font-size:18px;font-weight:700}.inv-wizard-section{margin-bottom:24px}.inv-wizard-section-title{color:#1a2e3b;margin:0 0 14px;font-size:16px;font-weight:700}.inv-wizard-row{align-items:flex-start;gap:24px;margin-bottom:14px;display:flex}.inv-wizard-label{color:#374151;min-width:100px;padding-top:8px;font-size:14px;font-weight:600}.inv-wizard-controls{flex-direction:column;gap:8px;display:flex}.inv-wizard-select{color:#111;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:5px;min-width:280px;padding:7px 10px;font-family:inherit;font-size:14px}.inv-wizard-select--sm{width:auto;min-width:auto}.inv-wizard-select--inline{vertical-align:middle;width:auto;min-width:auto;padding:3px 8px;font-size:13px}.inv-wizard-select:focus{border-color:#4593c6;outline:none}.inv-radio-wrap{color:#374151;cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.inv-radio-wrap input[type=radio]{accent-color:#f97316;cursor:pointer}.inv-wizard-actions{align-items:center;gap:12px;margin-top:8px;display:flex}.inv-wizard-error{color:#dc2626;margin:6px 0;font-size:13px}.inv-project-table{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden}.inv-project-table-header{color:#6b7280;background:#f9fafb;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:8px 14px;font-size:12px;display:flex}.inv-project-table-meta{gap:120px;display:flex}.inv-project-row{cursor:pointer;border-bottom:1px solid #f3f4f6;align-items:center;gap:10px;padding:10px 14px;font-size:14px;display:flex}.inv-project-row:last-child{border-bottom:none}.inv-project-row:hover{background:#f9fafb}.inv-project-name{flex:1;align-items:center;gap:6px;display:flex}.inv-project-hours{text-align:right;color:#374151;min-width:100px;font-size:13px}.inv-project-last{text-align:right;color:#6b7280;min-width:220px;font-size:12px}.inv-proj-badge{color:#374151;background:#e5e7eb;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500}.inv-proj-badge--tm{color:#1e40af;background:#dbeafe}.inv-proj-badge--fixedfee{color:#92400e;background:#fef3c7}.inv-proj-badge--archived{color:#856404;background:#fff3cd}.inv-hours-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.inv-option-group{flex-direction:column;gap:8px;display:flex}.inv-option-label{color:#374151;margin-bottom:4px;font-size:13px;font-weight:600}.inv-option-choices{flex-direction:column;gap:6px;display:flex}.inv-link{color:#4593c6;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.inv-btn-primary{color:#fff;cursor:pointer;background:#3a8d5c;border:none;border-radius:6px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s}.inv-btn-primary:hover:not(:disabled){background:#2d7a4f}.inv-btn-primary:disabled{opacity:.6;cursor:default}.inv-btn-plain{color:#374151;cursor:pointer;background:0 0;border:1px solid #d1d5db;border-radius:6px;padding:8px 18px;font-family:inherit;font-size:14px;transition:background .12s}.inv-btn-plain:hover{background:#f3f4f6}.inv-overview{grid-template-columns:220px 1fr;gap:16px;margin-bottom:28px;display:grid}.inv-summary-cards{flex-direction:column;gap:12px;display:flex}.inv-summary-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:20px 24px}.inv-summary-label{color:#6b7280;margin-bottom:6px;font-size:13px}.inv-summary-value{color:#111;font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.inv-summary-sub{color:#9ca3af;margin-top:4px;font-size:12px}.inv-chart-section{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px 20px}.inv-chart-header{align-items:center;gap:12px;margin-bottom:8px;display:flex}.inv-chart-nav{gap:4px;display:flex}.inv-chart-nav-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;display:flex}.inv-chart-nav-btn:hover{background:#f3f4f6}.inv-chart-title{color:#1a2e3b;flex:1;font-size:18px;font-weight:700}.inv-chart-legend{color:#6b7280;align-items:center;gap:6px;font-size:12px;display:flex}.inv-legend-dot{border-radius:2px;width:12px;height:12px;display:inline-block}.inv-legend-dot--open{background:#68b894}.inv-legend-dot--paid{background:#2d7a4f}.inv-chart-svg{width:100%;display:block}.inv-tabs{border-bottom:2px solid #e5e7eb;margin-bottom:0;display:flex}.inv-tab{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-2px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:500;display:flex}.inv-tab:hover{color:#111}.inv-tab.active{color:#111;border-bottom-color:#e8520a;font-weight:600}.inv-tab-count{color:#374151;background:#e5e7eb;border-radius:10px;padding:1px 7px;font-size:12px;font-weight:600}.inv-list-controls{border-bottom:1px solid #e5e7eb;align-items:center;gap:10px;margin-bottom:0;padding:12px 0;display:flex}.inv-filter-select{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:6px 12px;font-family:inherit;font-size:14px}.inv-table-wrap{border:1px solid #e5e7eb;border-radius:8px;margin-top:12px;overflow:hidden}.inv-table-header{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;background:#f9fafb;border-bottom:1px solid #e5e7eb;grid-template-columns:240px 100px 80px 1fr 120px;padding:10px 16px;font-size:12px;font-weight:600;display:grid}.inv-th-right{text-align:right}.inv-row{cursor:pointer;background:#fff;border-bottom:1px solid #f3f4f6;grid-template-columns:240px 100px 80px 1fr 120px;align-items:center;padding:12px 16px;transition:background .1s;display:grid}.inv-row:last-child{border-bottom:none}.inv-row:hover{background:#f9fafb}.inv-row-status{align-items:center;gap:8px;display:flex}.inv-status-badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.inv-status--draft{color:#6b7280;background:#f3f4f6}.inv-status--sent{color:#1e40af;background:#dbeafe}.inv-status--paid{color:#166534;background:#dcfce7}.inv-status--void{color:#991b1b;background:#fee2e2}.inv-status-text{color:#6b7280;font-size:13px}.inv-row-date,.inv-row-number{color:#374151;font-size:13px}.inv-row-client{color:#111;font-size:14px;font-weight:500}.inv-row-balance{color:#111;text-align:right;font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.inv-loading{color:#6b7280;text-align:center;padding:32px}.inv-empty{text-align:center;color:#9ca3af;padding:32px;font-size:14px}.inv-empty-small{color:#9ca3af;padding:12px 14px;font-size:13px}.inv-pagination{justify-content:center;align-items:center;gap:16px;padding:16px 0 4px;display:flex}.inv-page-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:6px 16px;font-family:inherit;font-size:14px;transition:background .12s}.inv-page-btn:hover:not(:disabled){background:#f3f4f6}.inv-page-btn:disabled{opacity:.4;cursor:default}.inv-page-info{color:#6b7280;font-size:13px}.id-page{max-width:900px;padding:24px 40px 60px}.id-loading,.id-error{color:#6b7280;padding:32px;font-size:14px}.id-error{color:#dc2626}.id-topbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.id-back{color:#6b7280;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-family:inherit;font-size:14px;display:flex}.id-back:hover{color:#111}.id-topbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.id-status-badge{border-radius:10px;padding:3px 10px;font-size:12px;font-weight:600}.id-status--draft{color:#6b7280;background:#f3f4f6}.id-status--sent{color:#1e40af;background:#dbeafe}.id-status--paid{color:#166534;background:#dcfce7}.id-status--void{color:#991b1b;background:#fee2e2}.id-action-btn{color:#374151;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:7px 14px;font-family:inherit;font-size:13px;transition:background .12s}.id-action-btn:hover{background:#f3f4f6}.id-action-btn--danger{color:#dc2626;border-color:#fca5a5}.id-action-btn--danger:hover{background:#fef2f2}.id-btn-save{color:#fff;cursor:pointer;background:#3a8d5c;border:none;border-radius:6px;padding:7px 18px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s}.id-btn-save:hover:not(:disabled){background:#2d7a4f}.id-btn-save:disabled{opacity:.6;cursor:default}.id-status-menu-wrap{position:relative}.id-status-dropdown{z-index:100;background:#fff;border:1px solid #e5e7eb;border-radius:8px;min-width:160px;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.id-status-dropdown button{text-align:left;color:#374151;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 16px;font-family:inherit;font-size:14px;display:block}.id-status-dropdown button:hover{background:#f9fafb}.id-status-dropdown button.danger{color:#dc2626}.id-status-dropdown button.danger:hover{background:#fef2f2}.id-document{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:40px 48px}.id-doc-header{justify-content:space-between;align-items:flex-start;margin-bottom:32px;display:flex}.id-doc-title{letter-spacing:.06em;color:#1a2e3b;font-size:36px;font-weight:800}.id-doc-from{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.id-doc-from-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.id-doc-from-name{color:#1a2e3b;font-size:16px;font-weight:700}.id-doc-meta{border-bottom:1px solid #e5e7eb;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px;padding-bottom:24px;display:grid}.id-meta-row{align-items:center;gap:12px;margin-bottom:8px;display:flex}.id-meta-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.04em;min-width:80px;font-size:12px;font-weight:600}.id-meta-label--right{text-align:left;min-width:unset;margin-bottom:4px}.id-meta-value{color:#374151;font-size:14px}.id-meta-value--bold{color:#1a2e3b;font-size:15px;font-weight:700}.id-meta-input{color:#111;border:1px solid #d1d5db;border-radius:5px;padding:5px 8px;font-family:inherit;font-size:14px}.id-meta-input:focus{border-color:#4593c6;outline:none;box-shadow:0 0 0 3px #4593c61a}.id-meta-input--wide{min-width:220px}.id-doc-meta-right{text-align:left}.id-doc-client-name{color:#1a2e3b;margin-bottom:4px;font-size:16px;font-weight:700}.id-doc-client-address{color:#6b7280;white-space:pre-line;font-size:13px;line-height:1.5}.id-line-table{border-collapse:collapse;width:100%;margin-bottom:12px}.id-line-table th{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:2px solid #e5e7eb;padding:8px 10px;font-size:11px;font-weight:600}.id-th-type{width:100px}.id-th-num{text-align:right;width:110px}.id-th-del{width:36px}.id-line-table td{vertical-align:middle;border-bottom:1px solid #f3f4f6;padding:10px;font-size:14px}.id-line-table tbody tr:last-child td{border-bottom:none}.id-td-type{color:#6b7280;font-size:13px}.id-td-desc{color:#1a2e3b}.id-td-num{text-align:right;color:#374151;font-variant-numeric:tabular-nums}.id-td-amount{text-align:right;color:#111;font-variant-numeric:tabular-nums;font-weight:600}.id-line-select{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:4px 6px;font-family:inherit;font-size:13px}.id-line-input{color:#111;border:1px solid #d1d5db;border-radius:4px;padding:4px 6px;font-family:inherit;font-size:13px}.id-line-input:focus,.id-line-select:focus{border-color:#4593c6;outline:none}.id-line-input--wide{box-sizing:border-box;width:100%;min-width:200px}.id-line-input--num{text-align:right;width:90px}.id-remove-line{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:18px;line-height:1}.id-remove-line:hover{color:#dc2626;background:#fef2f2}.id-add-line{color:#6b7280;cursor:pointer;background:0 0;border:1px dashed #d1d5db;border-radius:6px;margin-bottom:16px;padding:7px 16px;font-family:inherit;font-size:13px;transition:border-color .12s,color .12s}.id-add-line:hover{color:#374151;border-color:#9ca3af}.id-doc-footer{border-top:1px solid #e5e7eb;justify-content:space-between;align-items:flex-start;margin-top:4px;padding-top:16px;display:flex}.id-total-hours{color:#6b7280;padding-top:4px;font-size:13px}.id-totals{flex-direction:column;gap:6px;min-width:260px;display:flex}.id-total-row{color:#374151;justify-content:space-between;align-items:center;gap:32px;font-size:14px;display:flex}.id-total-row--due{color:#1a2e3b;border-top:2px solid #e5e7eb;margin-top:2px;padding-top:8px;font-size:16px;font-weight:700}.id-tax-input{text-align:right;border:1px solid #d1d5db;border-radius:4px;width:60px;padding:3px 6px;font-family:inherit;font-size:13px}.id-tax-input:focus{border-color:#4593c6;outline:none}.id-notes-section{border-top:1px solid #f3f4f6;margin-top:28px;padding-top:20px}.id-notes-text{color:#6b7280;white-space:pre-line;margin:0;font-size:13px;line-height:1.6}.id-notes-input{box-sizing:border-box;color:#374151;resize:vertical;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:8px 12px;font-family:inherit;font-size:13px}.id-notes-input:focus{border-color:#4593c6;outline:none;box-shadow:0 0 0 3px #4593c61a}@media print{.id-topbar{display:none!important}.id-page{max-width:100%;padding:0}.id-document{box-shadow:none;border:none;border-radius:0;padding:20px}.id-add-line,.id-remove-line{display:none}}.clients-header h2{color:#1a2e3b;margin:0;font-size:24px;font-weight:600}.clients-header-actions{justify-content:space-between;align-items:center;margin-top:8px;margin-bottom:10px;display:flex}.clients-header-left{align-items:center;gap:8px;display:flex}.clients-list{flex-direction:column;gap:2px;display:flex}.harvest-client-row{background:#f3f4f6;border-radius:4px;align-items:center;gap:12px;padding:6px 16px;display:flex}.harvest-client-row:nth-child(2n){background:#cce4f4}.harvest-client-row--archived{opacity:.55}.harvest-client-name{color:#111;flex:1;font-size:15px;font-weight:700}.harvest-client-actions{align-items:center;gap:8px;display:flex}.btn-add-contact{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:4px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s}.btn-add-contact:hover{background:#eeeff1}.btn-archive-inline{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-family:inherit;font-size:13px}.btn-archive-inline:hover{color:#dc2626;background:#fef2f2}.modal-archive-section{border-top:1px solid #e5e7eb;justify-content:flex-start;margin-top:8px;padding-top:16px;display:flex}.role-avatar-stack{align-items:center;gap:-4px;display:flex}.role-avatar-stack .role-avatar-circle+.role-avatar-circle{margin-left:-6px}.role-avatar-circle{color:#fff;border:2px solid #f3f4f6;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:10px;font-weight:700;display:flex}.role-avatar-overflow{background:#9ca3af;font-size:9px}.role-check-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:9px;font-weight:700;display:flex}.cedit-stats-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;gap:0;margin-bottom:16px;padding:16px 20px;display:flex}.cedit-stat{flex-direction:column;flex:1;gap:4px;display:flex}.cedit-stat-label{text-transform:uppercase;letter-spacing:.05em;color:#6b7280;font-size:11px;font-weight:500}.cedit-stat-value{color:#1a2e3b;font-size:22px;font-weight:700}.cedit-stat-divider{background:#e5e7eb;width:1px;margin:0 20px}.cedit-title{color:#1a2e3b;margin:0 0 16px;font-size:28px;font-weight:700}.cedit-divider{border:none;border-top:1px solid #e5e7eb;margin:0 0 32px}.cedit-section-divider{border:none;border-top:1px solid #e5e7eb;margin:20px 0}.cedit-layout{align-items:flex-start;gap:40px;display:flex}.cedit-form{flex:1;max-width:560px}.cedit-field{margin-bottom:20px}.cedit-label{color:#374151;margin-bottom:6px;font-size:14px;font-weight:500;display:block}.cedit-input{color:#111;box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:9px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.cedit-input:focus{border-color:#4593c6}.cedit-input-pct{width:90px}.cedit-textarea{color:#111;resize:vertical;box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:9px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.cedit-textarea:focus{border-color:#4593c6}.cedit-select{color:#111;appearance:none;cursor:pointer;box-sizing:border-box;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23666' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") right 12px center no-repeat;border:1px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:9px 32px 9px 12px;font-family:inherit;font-size:14px}.cedit-select-narrow{width:auto;min-width:180px}.cedit-select:focus{border-color:#4593c6}.cedit-tax-row{align-items:center;gap:8px;display:flex}.cedit-tax2-row{margin-top:10px}.cedit-pct-sym{color:#374151;font-size:14px;font-weight:500}.cedit-link-btn{color:#4593c6;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;margin-left:8px;padding:0;font-family:inherit;font-size:13px;text-decoration:underline}.cedit-link-btn:hover{color:#2b6fa8}.cedit-link-danger{color:#dc2626}.cedit-link-danger:hover{color:#b91c1c}.cedit-actions{align-items:center;gap:10px;margin-top:28px;display:flex}.cedit-archive-btn{color:#6b7280;cursor:pointer;text-align:center;background:0 0;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:500;transition:border-color .15s,color .15s;display:inline-block}.cedit-archive-btn:hover{color:#dc2626;border-color:#dc2626}.cedit-restore-btn{text-align:center;width:100%}.cedit-sidebar{flex-direction:column;flex-shrink:0;gap:16px;width:320px;display:flex}.cedit-sidebar-card{border-radius:8px;padding:16px 20px}.cedit-sidebar-card--blue{background:#eef4fb;border:1px solid #c5d9ee}.cedit-sidebar-card--warning{color:#5a4a1a;background:#fef9eb;border:1px solid #e8d9a0;font-size:14px;font-style:italic;line-height:1.5}.cedit-sidebar-card--warning p{margin:0}.cedit-sidebar-card-title{color:#1a2e3b;margin-bottom:10px;font-size:14px;font-weight:700}.cedit-project-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.cedit-project-list li{color:#1a2e3b;font-size:14px}.tasks-page-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.tasks-page-header h2{color:#1a2e3b;margin:0;font-size:24px;font-weight:600}.tasks-toolbar{align-items:center;gap:12px;margin-bottom:10px;display:flex}.tasks-search-wrap{flex:1;max-width:340px;position:relative}.tasks-search-icon{color:#9ca3af;pointer-events:none;font-size:16px;line-height:1;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.tasks-search{color:#111;box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:8px 12px 8px 32px;font-family:inherit;font-size:14px}.tasks-search:focus{border-color:#4593c6;outline:none;box-shadow:0 0 0 3px #4593c61a}.task-section{margin-bottom:16px}.task-section-header{background:#fde8cc;border-bottom:1px solid #e5e7eb;border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:6px 16px;display:flex}.task-section-header-left{flex-direction:column;gap:2px;display:flex}.task-section-title{color:#374151;font-size:14px;font-weight:600}.task-section-subtitle{color:#6b7280;font-size:12px}.task-row{background:#fff;border-bottom:1px solid #f3f4f6;align-items:center;gap:12px;padding:6px 16px;display:flex}.task-row:nth-child(2n){background:#cce4f4}.task-row:last-child{border-bottom:none;border-radius:0 0 6px 6px}.task-row--archived{opacity:.55}.task-row-name{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.task-row-label{color:#111;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.task-category{color:#c2410c;font-weight:700}.task-row-actions{flex-shrink:0}.task-actions-menu{position:relative}.btn-actions{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;align-items:center;gap:4px;padding:6px 12px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s;display:flex}.btn-actions:hover{background:#eeeff1}.caret{color:#9ca3af;font-size:11px}.task-actions-dropdown{z-index:100;background:#fff;border:1px solid #e5e7eb;border-radius:8px;min-width:120px;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 4px 16px #0000001a}.task-actions-dropdown button{text-align:left;color:#374151;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 16px;font-family:inherit;font-size:14px;display:block}.task-actions-dropdown button:hover{background:#eeeff1}.task-actions-dropdown button.danger{color:#dc2626}.task-actions-dropdown button.danger:hover{background:#fef2f2}.pagination{color:#6b7280;align-items:center;gap:12px;padding:16px 0;font-size:14px;display:flex}.pagination-info{flex:1}.pagination-pages{color:#374151;font-weight:500}.btn-page{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s}.btn-page:hover:not(:disabled){background:#eeeff1}.btn-page:disabled{opacity:.4;cursor:default}.client-form{flex-direction:column;display:flex}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-group label{color:#374151;font-size:13px;font-weight:500}.form-group input:not([type=checkbox]),.form-group textarea,.form-group select{color:#111;resize:vertical;box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.form-group input:not([type=checkbox]):focus,.form-group textarea:focus{border-color:#4593c6;box-shadow:0 0 0 3px #4593c626}.form-group-inline label{cursor:pointer;color:#374151;align-items:center;gap:8px;font-size:14px;font-weight:400;display:flex}.form-hint{color:#6b7280;font-size:12px;font-weight:400}.task-linked-projects{border-top:1px solid #e5e7eb;margin-top:16px;padding-top:12px}.task-linked-projects-title{color:#374151;margin-bottom:8px;font-size:13px;font-weight:600}.task-linked-projects-list{border:1px solid #e5e7eb;border-radius:6px;max-height:180px;margin:0;padding:0;list-style:none;overflow-y:auto}.task-linked-project-row{border-bottom:1px solid #f3f4f6;align-items:center;gap:6px;padding:7px 12px;font-size:13px;display:flex}.task-linked-project-row:last-child{border-bottom:none}.task-linked-project-row--archived{opacity:.55}.task-linked-project-client{color:#6b7280;flex-shrink:0}.task-linked-project-client:after{content:" /"}.task-linked-project-name{color:#111;flex:1;font-weight:500}.task-linked-project-badge{color:#6b7280;background:#f3f4f6;border-radius:10px;flex-shrink:0;padding:1px 7px;font-size:11px}.task-linked-projects-empty{color:#9ca3af;margin:0;font-size:13px}.btn-archived-link{color:#374151;cursor:pointer;background:0 0;border:1px solid #d1d5db;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:14px;transition:background .15s}.btn-archived-link:hover{background:#eeeff1}.ml-header{margin-bottom:24px}.ml-header h2{color:#1a2e3b;margin:0 0 6px;font-size:22px;font-weight:600}.ml-subtitle{color:#6b7280;margin:0;font-size:14px}.ml-lock-form{align-items:center;gap:10px;margin-bottom:20px;display:flex}.ml-lock-form select{color:#111;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px}.ml-lock-form select:focus{border-color:#4593c6;box-shadow:0 0 0 3px #4593c626}.ml-error{margin-bottom:16px}.ml-list{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.ml-list-header{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;background:#eeeff1;border-bottom:1px solid #e5e7eb;grid-template-columns:2fr 1fr 1fr auto;gap:12px;padding:10px 16px;font-size:12px;font-weight:600;display:grid}.ml-row{border-bottom:1px solid #f3f4f6;grid-template-columns:2fr 1fr 1fr auto;align-items:center;gap:12px;padding:12px 16px;display:grid}.ml-row:last-child{border-bottom:none}.ml-project{color:#111;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.ml-period{color:#374151;font-size:14px}.ml-date{color:#6b7280;font-size:14px}.profile-page{max-width:560px}.profile-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:32px}.profile-avatar{color:#fff;background:#4593c6;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:12px;font-size:22px;font-weight:700;display:flex}.profile-email{color:#6b7280;margin-bottom:28px;font-size:14px}.profile-form{flex-direction:column;gap:16px;display:flex}.profile-row{gap:16px;display:flex}.profile-row .form-field{flex:1}.profile-saved{color:#16a34a;font-size:13px;font-weight:500}.sp-page{max-width:760px;padding:32px 40px 48px}.sp-title{color:#1a2e3b;margin:0 0 20px;font-size:26px;font-weight:700}.sp-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.sp-row{border-bottom:1px solid #e5e7eb;grid-template-columns:220px 1fr;align-items:start;gap:16px;padding:14px 20px;display:grid}.sp-row:last-of-type{border-bottom:none}.sp-row-label{color:#374151;flex-shrink:0;padding-top:6px;font-size:14px}.sp-row-value{padding-top:2px;font-size:14px}.sp-display-val{color:#e8520a;line-height:1.5}.sp-input{color:#111;box-sizing:border-box;background:#fff;border:1px solid #d1d5db;border-radius:5px;width:100%;padding:6px 10px;font-family:inherit;font-size:14px}.sp-input:focus{border-color:#4593c6;outline:none;box-shadow:0 0 0 3px #4593c61a}.sp-input--sm{width:80px}.sp-input--xs{text-align:center;width:56px}.sp-select{color:#111;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:5px;max-width:100%;padding:6px 10px;font-family:inherit;font-size:14px}.sp-select:focus{border-color:#4593c6;outline:none;box-shadow:0 0 0 3px #4593c61a}.sp-select--sm{width:auto}.sp-inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sp-unit{color:#6b7280;font-size:14px}.sp-reminders{flex-direction:column;gap:10px;display:flex}.sp-toggle-wrap{color:#374151;cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.sp-toggle-wrap input[type=checkbox]{cursor:pointer;accent-color:#3a8d5c;width:16px;height:16px}.sp-reminder-detail{color:#374151;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;font-size:13px;display:flex}.sp-footer{background:#f9fafb;border-top:1px solid #e5e7eb;align-items:center;gap:12px;padding:16px 20px;display:flex}.sp-btn-edit{color:#fff;cursor:pointer;background:#3a8d5c;border:none;border-radius:6px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:500;transition:background .15s}.sp-btn-edit:hover{background:#2d7a4f}.sp-btn-save{color:#fff;cursor:pointer;background:#3a8d5c;border:none;border-radius:6px;padding:9px 20px;font-family:inherit;font-size:14px;font-weight:500;transition:background .15s}.sp-btn-save:hover:not(:disabled){background:#2d7a4f}.sp-btn-save:disabled{opacity:.6;cursor:default}.sp-btn-cancel{color:#374151;cursor:pointer;background:0 0;border:1px solid #d1d5db;border-radius:6px;padding:8px 18px;font-family:inherit;font-size:14px;transition:background .12s}.sp-btn-cancel:hover:not(:disabled){background:#f3f4f6}.sp-error{color:#dc2626;padding:8px 20px;font-size:13px}.sp-loading{color:#6b7280;padding:32px 20px}.signin-page{flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100vh;font-family:sans-serif;display:flex}.signin-page h1{color:#2b4a5e;margin:0;font-size:36px;font-weight:700}.signin-page p{color:#666;margin:0 0 8px}.signin-btn{color:#fff;cursor:pointer;background:#2b4a5e;border:none;border-radius:6px;padding:10px 28px;font-size:15px;font-weight:500;transition:background .15s}.signin-btn:hover{background:#3a6080}.main-content{padding:32px 140px}.page-content h2{color:#1a2e3b;margin:0;font-size:24px;font-weight:600}
