@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.0-BHUkWNFR.woff2)format("woff2-variations");unicode-range:U+F9CA-FA0B,U+FF03-FF05,U+FF07,U+FF0A-FF0B,U+FF0D-FF19,U+FF1B,U+FF1D,U+FF20-FF5B,U+FF5D,U+FFE0-FFE3,U+FFE5-FFE6}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.1-C-__qv6_.woff2)format("woff2-variations");unicode-range:U+D723-D728,U+D72A-D733,U+D735-D748,U+D74A-D74F,U+D752-D753,U+D755-D757,U+D75A-D75F,U+D762-D764,U+D766-D768,U+D76A-D76B,U+D76D-D76F,U+D771-D787,U+D789-D78B,U+D78D-D78F,U+D791-D797,U+D79A,U+D79C,U+D79E-D7A3,U+F900-F909,U+F90B-F92E}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.2-dCZkyKLw.woff2)format("woff2-variations");unicode-range:U+D679-D68B,U+D68E-D69E,U+D6A0,U+D6A2-D6A7,U+D6A9-D6C3,U+D6C6-D6C7,U+D6C9-D6CB,U+D6CD-D6D3,U+D6D5-D6D6,U+D6D8-D6E3,U+D6E5-D6E7,U+D6E9-D6FB,U+D6FD-D717,U+D719-D71F,U+D721-D722}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.3-Dqw33sf4.woff2)format("woff2-variations");unicode-range:U+D5BC-D5C7,U+D5CA-D5CB,U+D5CD-D5CF,U+D5D1-D5D7,U+D5D9-D5DA,U+D5DC,U+D5DE-D5E3,U+D5E6-D5E7,U+D5E9-D5EB,U+D5ED-D5F6,U+D5F8,U+D5FA-D5FF,U+D602-D603,U+D605-D607,U+D609-D60F,U+D612-D613,U+D616-D61B,U+D61D-D637,U+D63A-D63B,U+D63D-D63F,U+D641-D647,U+D64A-D64C,U+D64E-D653,U+D656-D657,U+D659-D65B,U+D65D-D666,U+D668,U+D66A-D678}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.4-Bvh2YGoc.woff2)format("woff2-variations");unicode-range:U+D507,U+D509-D50B,U+D50D-D513,U+D515-D53B,U+D53E-D53F,U+D541-D543,U+D545-D54C,U+D54E,U+D550,U+D552-D557,U+D55A-D55B,U+D55D-D55F,U+D561-D564,U+D566-D567,U+D56A,U+D56C,U+D56E-D573,U+D576-D577,U+D579-D583,U+D585-D586,U+D58A-D5A4,U+D5A6-D5BB}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.5-K_MNGNCe.woff2)format("woff2-variations");unicode-range:U+D464-D477,U+D47A-D47B,U+D47D-D47F,U+D481-D487,U+D489-D48A,U+D48C,U+D48E-D4E7,U+D4E9-D503,U+D505-D506}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.6-Bxhohlcm.woff2)format("woff2-variations");unicode-range:U+D3BF-D3C7,U+D3CA-D3CF,U+D3D1-D3EB,U+D3EE-D3EF,U+D3F1-D3F3,U+D3F5-D3FB,U+D3FD-D400,U+D402-D45B,U+D45D-D463}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.7-E2HaA55t.woff2)format("woff2-variations");unicode-range:U+D2FF,U+D302-D304,U+D306-D30B,U+D30F,U+D311-D313,U+D315-D31B,U+D31E,U+D322-D324,U+D326-D327,U+D32A-D32B,U+D32D-D32F,U+D331-D337,U+D339-D33C,U+D33E-D37B,U+D37E-D37F,U+D381-D383,U+D385-D38B,U+D38E-D390,U+D392-D397,U+D39A-D39B,U+D39D-D39F,U+D3A1-D3A7,U+D3A9-D3AA,U+D3AC,U+D3AE-D3B3,U+D3B5-D3B7,U+D3B9-D3BB,U+D3BD-D3BE}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.8-CRbJhhyA.woff2)format("woff2-variations");unicode-range:U+D257-D27F,U+D281-D29B,U+D29D-D29F,U+D2A1-D2AB,U+D2AD-D2B7,U+D2BA-D2BB,U+D2BD-D2BF,U+D2C1-D2C7,U+D2C9-D2EF,U+D2F2-D2F3,U+D2F5-D2F7,U+D2F9-D2FE}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.9-Btb3bmS6.woff2)format("woff2-variations");unicode-range:U+D1B4,U+D1B6-D1F3,U+D1F5-D22B,U+D22E-D22F,U+D231-D233,U+D235-D23B,U+D23D-D240,U+D242-D256}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.10-DzSWztS8.woff2)format("woff2-variations");unicode-range:U+D105-D12F,U+D132-D133,U+D135-D137,U+D139-D13F,U+D141-D142,U+D144,U+D146-D14B,U+D14E-D14F,U+D151-D153,U+D155-D15B,U+D15E-D187,U+D189-D19F,U+D1A2-D1A3,U+D1A5-D1A7,U+D1A9-D1AF,U+D1B2-D1B3}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.11-CqVmlKJn.woff2)format("woff2-variations");unicode-range:U+D04B-D04F,U+D051-D057,U+D059-D06B,U+D06D-D06F,U+D071-D073,U+D075-D07B,U+D07E-D0A3,U+D0A6-D0A7,U+D0A9-D0AB,U+D0AD-D0B3,U+D0B6,U+D0B8,U+D0BA-D0BF,U+D0C2-D0C3,U+D0C5-D0C7,U+D0C9-D0CF,U+D0D2,U+D0D6-D0DB,U+D0DE-D0DF,U+D0E1-D0E3,U+D0E5-D0EB,U+D0EE-D0F0,U+D0F2-D104}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.12-BHuZSgT0.woff2)format("woff2-variations");unicode-range:U+CFA2-CFC3,U+CFC5-CFDF,U+CFE2-CFE3,U+CFE5-CFE7,U+CFE9-CFF4,U+CFF6-CFFB,U+CFFD-CFFF,U+D001-D003,U+D005-D017,U+D019-D033,U+D036-D037,U+D039-D03B,U+D03D-D04A}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.13-C42mj_j2.woff2)format("woff2-variations");unicode-range:U+CEF0-CEF3,U+CEF6,U+CEF9-CEFF,U+CF01-CF03,U+CF05-CF07,U+CF09-CF0F,U+CF11-CF12,U+CF14-CF1B,U+CF1D-CF1F,U+CF21-CF2F,U+CF31-CF53,U+CF56-CF57,U+CF59-CF5B,U+CF5D-CF63,U+CF66,U+CF68,U+CF6A-CF6F,U+CF71-CF84,U+CF86-CF8B,U+CF8D-CFA1}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.14-Bl512uUX.woff2)format("woff2-variations");unicode-range:U+CE3C-CE57,U+CE5A-CE5B,U+CE5D-CE5F,U+CE61-CE67,U+CE6A,U+CE6C,U+CE6E-CE73,U+CE76-CE77,U+CE79-CE7B,U+CE7D-CE83,U+CE85-CE88,U+CE8A-CE8F,U+CE91-CE93,U+CE95-CE97,U+CE99-CE9F,U+CEA2,U+CEA4-CEAB,U+CEAD-CEE3,U+CEE6-CEE7,U+CEE9-CEEB,U+CEED-CEEF}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.15-D04iXIE3.woff2)format("woff2-variations");unicode-range:U+CD92-CD93,U+CD96-CD97,U+CD99-CD9B,U+CD9D-CDA3,U+CDA6-CDA8,U+CDAA-CDAF,U+CDB1-CDC3,U+CDC5-CDCB,U+CDCD-CDE7,U+CDE9-CE03,U+CE05-CE1F,U+CE22-CE34,U+CE36-CE3B}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.16-BQUnS2GX.woff2)format("woff2-variations");unicode-range:U+CCEF-CD07,U+CD0A-CD0B,U+CD0D-CD1A,U+CD1C,U+CD1E-CD2B,U+CD2D-CD5B,U+CD5D-CD77,U+CD79-CD91}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.17-BfZSA-Xc.woff2)format("woff2-variations");unicode-range:U+CC3F-CC43,U+CC46-CC47,U+CC49-CC4B,U+CC4D-CC53,U+CC55-CC58,U+CC5A-CC5F,U+CC61-CC97,U+CC9A-CC9B,U+CC9D-CC9F,U+CCA1-CCA7,U+CCAA,U+CCAC,U+CCAE-CCB3,U+CCB6-CCB7,U+CCB9-CCBB,U+CCBD-CCCF,U+CCD1-CCE3,U+CCE5-CCEE}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.18-CwAxMC3C.woff2)format("woff2-variations");unicode-range:U+CB91-CBD3,U+CBD5-CBE3,U+CBE5-CC0B,U+CC0E-CC0F,U+CC11-CC13,U+CC15-CC1B,U+CC1D-CC20,U+CC23-CC27,U+CC2A-CC2B,U+CC2D,U+CC2F,U+CC31-CC37,U+CC3A,U+CC3C}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.19-CJu4Zcdo.woff2)format("woff2-variations");unicode-range:U+CAF4-CB47,U+CB4A-CB90}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.20-Ig1-z3n5.woff2)format("woff2-variations");unicode-range:U+CA4A-CA4B,U+CA4E-CA4F,U+CA51-CA53,U+CA55-CA5B,U+CA5D-CA60,U+CA62-CA83,U+CA85-CABB,U+CABE-CABF,U+CAC1-CAC3,U+CAC5-CACB,U+CACD-CAD0,U+CAD2,U+CAD4-CAD8,U+CADA-CAF3}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.21-yKPEdLXC.woff2)format("woff2-variations");unicode-range:U+C996-C997,U+C99A-C99C,U+C99E-C9BF,U+C9C2-C9C3,U+C9C5-C9C7,U+C9C9-C9CF,U+C9D2,U+C9D4,U+C9D7-C9D8,U+C9DB,U+C9DE-C9DF,U+C9E1-C9E3,U+C9E5-C9E6,U+C9E8-C9EB,U+C9EE-C9F0,U+C9F2-C9F7,U+C9F9-CA0B,U+CA0D-CA28,U+CA2A-CA49}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.22-CSqxKoOs.woff2)format("woff2-variations");unicode-range:U+C8E9-C8F4,U+C8F6-C8FB,U+C8FE-C8FF,U+C901-C903,U+C905-C90B,U+C90E-C910,U+C912-C917,U+C919-C92B,U+C92D-C94F,U+C951-C953,U+C955-C96B,U+C96D-C973,U+C975-C987,U+C98A-C98B,U+C98D-C98F,U+C991-C995}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.23-DK80wi0t.woff2)format("woff2-variations");unicode-range:U+C841-C84B,U+C84D-C86F,U+C872-C873,U+C875-C877,U+C879-C87F,U+C882-C884,U+C887-C88A,U+C88D-C8C3,U+C8C5-C8DF,U+C8E1-C8E8}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.24-CmkE8Q8D.woff2)format("woff2-variations");unicode-range:U+C779-C77B,U+C77E-C782,U+C786,U+C78B,U+C78D,U+C78F,U+C792-C793,U+C795,U+C797,U+C799-C79F,U+C7A2,U+C7A7-C7AB,U+C7AE-C7BB,U+C7BD-C7C0,U+C7C2-C7C7,U+C7C9-C7DC,U+C7DE-C7FF,U+C802-C803,U+C805-C807,U+C809,U+C80B-C80F,U+C812,U+C814,U+C817-C81B,U+C81E-C81F,U+C821-C823,U+C825-C82E,U+C830-C837,U+C839-C83B,U+C83D-C840}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.25-CsoWBIZB.woff2)format("woff2-variations");unicode-range:U+C6BB-C6BF,U+C6C2,U+C6C4,U+C6C6-C6CB,U+C6CE-C6CF,U+C6D1-C6D3,U+C6D5-C6DB,U+C6DD-C6DF,U+C6E1-C6E7,U+C6E9-C6EB,U+C6ED-C6EF,U+C6F1-C6F8,U+C6FA-C703,U+C705-C707,U+C709-C70B,U+C70D-C716,U+C718,U+C71A-C71F,U+C722-C723,U+C725-C727,U+C729-C734,U+C736-C73B,U+C73E-C73F,U+C741-C743,U+C745-C74B,U+C74E-C750,U+C752-C757,U+C759-C773,U+C776-C777}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.26-Sozl8dw8.woff2)format("woff2-variations");unicode-range:U+C5F5-C5FB,U+C5FE,U+C602-C605,U+C607,U+C609-C60F,U+C611-C61A,U+C61C-C623,U+C626-C627,U+C629-C62B,U+C62D,U+C62F-C632,U+C636,U+C638,U+C63A-C63F,U+C642-C643,U+C645-C647,U+C649-C652,U+C656-C65B,U+C65D-C65F,U+C661-C663,U+C665-C677,U+C679-C67B,U+C67D-C693,U+C696-C697,U+C699-C69B,U+C69D-C6A3,U+C6A6,U+C6A8,U+C6AA-C6AF,U+C6B2-C6B3,U+C6B5-C6B7,U+C6B9-C6BA}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.27-CT6nuW9L.woff2)format("woff2-variations");unicode-range:U+C517-C527,U+C52A-C52B,U+C52D-C52F,U+C531-C538,U+C53A,U+C53C,U+C53E-C543,U+C546-C547,U+C54B,U+C54D-C552,U+C556,U+C55A-C55B,U+C55D,U+C55F,U+C562-C563,U+C565-C567,U+C569-C56F,U+C572,U+C574,U+C576-C57B,U+C57E-C57F,U+C581-C583,U+C585-C586,U+C588-C58B,U+C58E,U+C590,U+C592-C596,U+C599-C5B3,U+C5B6-C5B7,U+C5BA,U+C5BE-C5C3,U+C5CA-C5CB,U+C5CD,U+C5CF,U+C5D2-C5D3,U+C5D5-C5D7,U+C5D9-C5DF,U+C5E1-C5E2,U+C5E4,U+C5E6-C5EB,U+C5EF,U+C5F1-C5F3}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.28-CpO0Y96p.woff2)format("woff2-variations");unicode-range:U+C475-C4EF,U+C4F2-C4F3,U+C4F5-C4F7,U+C4F9-C4FF,U+C502-C50B,U+C50D-C516}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.29-D6hjrUWm.woff2)format("woff2-variations");unicode-range:U+C3D0-C3D7,U+C3DA-C3DB,U+C3DD-C3DE,U+C3E1-C3EC,U+C3EE-C3F3,U+C3F5-C42B,U+C42D-C463,U+C466-C474}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.30-CWDM1c0J.woff2)format("woff2-variations");unicode-range:U+C32B-C367,U+C36A-C36B,U+C36D-C36F,U+C371-C377,U+C37A-C37B,U+C37E-C383,U+C385-C387,U+C389-C3CF}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.31-CdmyZ5mm.woff2)format("woff2-variations");unicode-range:U+C26A-C26B,U+C26D-C26F,U+C271-C273,U+C275-C27B,U+C27E-C287,U+C289-C28F,U+C291-C297,U+C299-C29A,U+C29C-C2A3,U+C2A5-C2A7,U+C2A9-C2AB,U+C2AD-C2B3,U+C2B6,U+C2B8,U+C2BA-C2BB,U+C2BD-C2DB,U+C2DE-C2DF,U+C2E1-C2E2,U+C2E5-C2EA,U+C2EE,U+C2F0,U+C2F2-C2F5,U+C2F7,U+C2FA-C2FB,U+C2FD-C2FF,U+C301-C307,U+C309-C30C,U+C30E-C312,U+C315-C323,U+C325-C328,U+C32A}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.32-CGnFWD2i.woff2)format("woff2-variations");unicode-range:U+C1BC-C1C3,U+C1C5-C1DF,U+C1E1-C1FB,U+C1FD-C203,U+C205-C20C,U+C20E,U+C210-C217,U+C21A-C21B,U+C21D-C21E,U+C221-C227,U+C229-C22A,U+C22C,U+C22E,U+C230,U+C233-C24F,U+C251-C257,U+C259-C269}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.33--0OT__YQ.woff2)format("woff2-variations");unicode-range:U+C101-C11B,U+C11F,U+C121-C123,U+C125-C12B,U+C12E,U+C132-C137,U+C13A-C13B,U+C13D-C13F,U+C141-C147,U+C14A,U+C14C-C153,U+C155-C157,U+C159-C15B,U+C15D-C166,U+C169-C16F,U+C171-C177,U+C179-C18B,U+C18E-C18F,U+C191-C193,U+C195-C19B,U+C19D-C19E,U+C1A0,U+C1A2-C1A4,U+C1A6-C1BB}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.34-CaCS33Md.woff2)format("woff2-variations");unicode-range:U+C049-C057,U+C059-C05B,U+C05D-C05F,U+C061-C067,U+C069-C08F,U+C091-C0AB,U+C0AE-C0AF,U+C0B1-C0B3,U+C0B5,U+C0B7-C0BB,U+C0BE,U+C0C2-C0C7,U+C0CA-C0CB,U+C0CD-C0CF,U+C0D1-C0D7,U+C0D9-C0DA,U+C0DC,U+C0DE-C0E3,U+C0E5-C0EB,U+C0ED-C0F3,U+C0F6,U+C0F8,U+C0FA-C0FF}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.35-DWFYRGLp.woff2)format("woff2-variations");unicode-range:U+BFA7-BFAF,U+BFB1-BFC4,U+BFC6-BFCB,U+BFCE-BFCF,U+BFD1-BFD3,U+BFD5-BFDB,U+BFDD-C048}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.36-Dn5IBRQB.woff2)format("woff2-variations");unicode-range:U+BF07,U+BF09-BF3F,U+BF41-BF4F,U+BF52-BF54,U+BF56-BFA6}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.37-BD6FyOtY.woff2)format("woff2-variations");unicode-range:U+BE56,U+BE58,U+BE5C-BE5F,U+BE62-BE63,U+BE65-BE67,U+BE69-BE74,U+BE76-BE7B,U+BE7E-BE7F,U+BE81-BE8E,U+BE90,U+BE92-BEA7,U+BEA9-BECF,U+BED2-BED3,U+BED5-BED6,U+BED9-BEE3,U+BEE6-BF06}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.38-D4hu443z.woff2)format("woff2-variations");unicode-range:U+BDB0-BDD3,U+BDD5-BDEF,U+BDF1-BE0B,U+BE0D-BE0F,U+BE11-BE13,U+BE15-BE43,U+BE46-BE47,U+BE49-BE4B,U+BE4D-BE53}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.39-B_7wfth9.woff2)format("woff2-variations");unicode-range:U+BD03,U+BD06,U+BD08,U+BD0A-BD0F,U+BD11-BD22,U+BD25-BD47,U+BD49-BD58,U+BD5A-BD7F,U+BD82-BD83,U+BD85-BD87,U+BD8A-BD8F,U+BD91-BD92,U+BD94,U+BD96-BD98,U+BD9A-BDAF}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.40-BDaOfdUe.woff2)format("woff2-variations");unicode-range:U+BC4E-BC83,U+BC86-BC87,U+BC89-BC8B,U+BC8D-BC93,U+BC96,U+BC98,U+BC9B-BC9F,U+BCA2-BCA3,U+BCA5-BCA7,U+BCA9-BCB2,U+BCB4-BCBB,U+BCBE-BCBF,U+BCC1-BCC3,U+BCC5-BCCC,U+BCCE-BCD0,U+BCD2-BCD4,U+BCD6-BCF3,U+BCF7,U+BCF9-BCFB,U+BCFD-BD02}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.41-BUACvzZC.woff2)format("woff2-variations");unicode-range:U+BB90-BBA3,U+BBA5-BBAB,U+BBAD-BBBF,U+BBC1-BBF7,U+BBFA-BBFB,U+BBFD-BBFE,U+BC01-BC07,U+BC09-BC0A,U+BC0E,U+BC10,U+BC12-BC13,U+BC17,U+BC19-BC1A,U+BC1E,U+BC20-BC23,U+BC26,U+BC28,U+BC2A-BC2C,U+BC2E-BC2F,U+BC32-BC33,U+BC35-BC37,U+BC39-BC3F,U+BC41-BC42,U+BC44,U+BC46-BC48,U+BC4A-BC4D}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.42-Dp-5mnyL.woff2)format("woff2-variations");unicode-range:U+BAE6-BAFB,U+BAFD-BB17,U+BB19-BB33,U+BB37,U+BB39-BB3A,U+BB3D-BB43,U+BB45-BB46,U+BB48,U+BB4A-BB4F,U+BB51-BB53,U+BB55-BB57,U+BB59-BB62,U+BB64-BB8F}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.43-DHdpry7N.woff2)format("woff2-variations");unicode-range:U+BA30-BA37,U+BA3A-BA3B,U+BA3D-BA3F,U+BA41-BA47,U+BA49-BA4A,U+BA4C,U+BA4E-BA53,U+BA56-BA57,U+BA59-BA5B,U+BA5D-BA63,U+BA65-BA66,U+BA68-BA6F,U+BA71-BA73,U+BA75-BA77,U+BA79-BA84,U+BA86,U+BA88-BAA7,U+BAAA,U+BAAD-BAAF,U+BAB1-BAB7,U+BABA,U+BABC,U+BABE-BAE5}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.44-qHopVhdd.woff2)format("woff2-variations");unicode-range:U+B96E-B973,U+B976-B977,U+B979-B97B,U+B97D-B983,U+B986,U+B988,U+B98A-B98D,U+B98F-B9AB,U+B9AE-B9AF,U+B9B1-B9B3,U+B9B5-B9BB,U+B9BE,U+B9C0,U+B9C2-B9C7,U+B9CA-B9CB,U+B9CD,U+B9D2-B9D7,U+B9DA,U+B9DC,U+B9DF-B9E0,U+B9E2,U+B9E6-B9E7,U+B9E9-B9F3,U+B9F6,U+B9F8,U+B9FB-BA2F}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.45-BniyRFfm.woff2)format("woff2-variations");unicode-range:U+B8BF-B8CB,U+B8CD-B8E0,U+B8E2-B8E7,U+B8EA-B8EB,U+B8ED-B8EF,U+B8F1-B8F7,U+B8FA,U+B8FC,U+B8FE-B903,U+B905-B917,U+B919-B91F,U+B921-B93B,U+B93D-B957,U+B95A-B95B,U+B95D-B95F,U+B961-B967,U+B969-B96C}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.46-BMRq7xC-.woff2)format("woff2-variations");unicode-range:U+B80D-B80F,U+B811-B817,U+B81A,U+B81C-B823,U+B826-B827,U+B829-B82B,U+B82D-B833,U+B836,U+B83A-B83F,U+B841-B85B,U+B85E-B85F,U+B861-B863,U+B865-B86B,U+B86E,U+B870,U+B872-B8AF,U+B8B1-B8BE}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.47-B-cWO2pw.woff2)format("woff2-variations");unicode-range:U+B74D-B75F,U+B761-B763,U+B765-B774,U+B776-B77B,U+B77E-B77F,U+B781-B783,U+B785-B78B,U+B78E,U+B792-B796,U+B79A-B79B,U+B79D-B7A7,U+B7AA,U+B7AE-B7B3,U+B7B6-B7C8,U+B7CA-B7EB,U+B7EE-B7EF,U+B7F1-B7F3,U+B7F5-B7FB,U+B7FE,U+B802-B806,U+B80A-B80B}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.48-Ct-fWrPO.woff2)format("woff2-variations");unicode-range:U+B6A7-B6AA,U+B6AC-B6B0,U+B6B2-B6EF,U+B6F1-B727,U+B72A-B72B,U+B72D-B72E,U+B731-B737,U+B739-B73A,U+B73C-B743,U+B745-B74C}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.49-BblQVys9.woff2)format("woff2-variations");unicode-range:U+B605-B60F,U+B612-B617,U+B619-B624,U+B626-B69B,U+B69E-B6A3,U+B6A5-B6A6}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.50-C8IyFH7L.woff2)format("woff2-variations");unicode-range:U+B55F,U+B562-B583,U+B585-B59F,U+B5A2-B5A3,U+B5A5-B5A7,U+B5A9-B5B2,U+B5B5-B5BA,U+B5BD-B604}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.51-Bxd0gTAs.woff2)format("woff2-variations");unicode-range:U+B4A5-B4B6,U+B4B8-B4BF,U+B4C1-B4C7,U+B4C9-B4DB,U+B4DE-B4DF,U+B4E1-B4E2,U+B4E5-B4EB,U+B4EE,U+B4F0,U+B4F2-B513,U+B516-B517,U+B519-B51A,U+B51D-B523,U+B526,U+B528,U+B52B-B52F,U+B532-B533,U+B535-B537,U+B539-B53F,U+B541-B544,U+B546-B54B,U+B54D-B54F,U+B551-B55B,U+B55D-B55E}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.52-CNgqKOOJ.woff2)format("woff2-variations");unicode-range:U+B3F8-B3FB,U+B3FD-B40F,U+B411-B417,U+B419-B41B,U+B41D-B41F,U+B421-B427,U+B42A-B42B,U+B42D-B44F,U+B452-B453,U+B455-B457,U+B459-B45F,U+B462-B464,U+B466-B46B,U+B46D-B47F,U+B481-B4A3}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.53-BSRnyb-u.woff2)format("woff2-variations");unicode-range:U+B342-B353,U+B356-B357,U+B359-B35B,U+B35D-B35E,U+B360-B363,U+B366,U+B368,U+B36A-B36D,U+B36F,U+B372-B373,U+B375-B377,U+B379-B37F,U+B381-B382,U+B384,U+B386-B38B,U+B38D-B3C3,U+B3C6-B3C7,U+B3C9-B3CA,U+B3CD-B3D3,U+B3D6,U+B3D8,U+B3DA-B3F7}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.54-Dt2-cQkx.woff2)format("woff2-variations");unicode-range:U+B27C-B283,U+B285-B28F,U+B292-B293,U+B295-B297,U+B29A-B29F,U+B2A1-B2A4,U+B2A7-B2A9,U+B2AB,U+B2AD-B2C7,U+B2CA-B2CB,U+B2CD-B2CF,U+B2D1-B2D7,U+B2DA,U+B2DC,U+B2DE-B2E3,U+B2E7,U+B2E9-B2EA,U+B2EF-B2F3,U+B2F6,U+B2F8,U+B2FA-B2FB,U+B2FD-B2FE,U+B302-B303,U+B305-B307,U+B309-B30F,U+B312,U+B316-B31B,U+B31D-B341}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.55-jFgflYjX.woff2)format("woff2-variations");unicode-range:U+B1D6-B1E7,U+B1E9-B1FC,U+B1FE-B203,U+B206-B207,U+B209-B20B,U+B20D-B213,U+B216-B21F,U+B221-B257,U+B259-B273,U+B275-B27B}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.56-BwZdvJZQ.woff2)format("woff2-variations");unicode-range:U+B120-B122,U+B126-B127,U+B129-B12B,U+B12D-B133,U+B136,U+B138,U+B13A-B13F,U+B142-B143,U+B145-B14F,U+B151-B153,U+B156-B157,U+B159-B177,U+B17A-B17B,U+B17D-B17F,U+B181-B187,U+B189-B18C,U+B18E-B191,U+B195-B1A7,U+B1A9-B1CB,U+B1CD-B1D5}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.57-BwFDg-Fs.woff2)format("woff2-variations");unicode-range:U+B05F-B07B,U+B07E-B07F,U+B081-B083,U+B085-B08B,U+B08D-B097,U+B09B,U+B09D-B09F,U+B0A2-B0A7,U+B0AA,U+B0B0,U+B0B2,U+B0B6-B0B7,U+B0B9-B0BB,U+B0BD-B0C3,U+B0C6-B0C7,U+B0CA-B0CF,U+B0D1-B0DF,U+B0E1-B0E4,U+B0E6-B107,U+B10A-B10B,U+B10D-B10F,U+B111-B112,U+B114-B117,U+B119-B11A,U+B11C-B11F}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.58-DlucQts_.woff2)format("woff2-variations");unicode-range:U+AFAC-AFB7,U+AFBA-AFBB,U+AFBD-AFBF,U+AFC1-AFC6,U+AFCA-AFCC,U+AFCE-AFD3,U+AFD5-AFE7,U+AFE9-AFEF,U+AFF1-B00B,U+B00D-B00F,U+B011-B013,U+B015-B01B,U+B01D-B027,U+B029-B043,U+B045-B047,U+B049,U+B04B,U+B04D-B052,U+B055-B056,U+B058-B05C,U+B05E}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.59-CMkWjhdo.woff2)format("woff2-variations");unicode-range:U+AF03-AF07,U+AF09-AF2B,U+AF2E-AF33,U+AF35-AF3B,U+AF3E-AF40,U+AF44-AF47,U+AF4A-AF5C,U+AF5E-AF63,U+AF65-AF7F,U+AF81-AFAB}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.60-CeHezjjf.woff2)format("woff2-variations");unicode-range:U+AE56-AE5B,U+AE5E-AE60,U+AE62-AE64,U+AE66-AE67,U+AE69-AE6B,U+AE6D-AE83,U+AE85-AEBB,U+AEBF,U+AEC1-AEC3,U+AEC5-AECB,U+AECE,U+AED0,U+AED2-AED7,U+AED9-AEF3,U+AEF5-AF02}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.61-PUuTnod4.woff2)format("woff2-variations");unicode-range:U+AD9C-ADA3,U+ADA5-ADBF,U+ADC1-ADC3,U+ADC5-ADC7,U+ADC9-ADD2,U+ADD4-ADDB,U+ADDD-ADDF,U+ADE1-ADE3,U+ADE5-ADF7,U+ADFA-ADFB,U+ADFD-ADFF,U+AE02-AE07,U+AE0A,U+AE0C,U+AE0E-AE13,U+AE15-AE2F,U+AE31-AE33,U+AE35-AE37,U+AE39-AE3F,U+AE42,U+AE44,U+AE46-AE49,U+AE4B,U+AE4F,U+AE51-AE53,U+AE55}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.62-DGSAWCfb.woff2)format("woff2-variations");unicode-range:U+ACE2-ACE3,U+ACE5-ACE6,U+ACE9-ACEF,U+ACF2,U+ACF4,U+ACF7-ACFB,U+ACFE-ACFF,U+AD01-AD03,U+AD05-AD0B,U+AD0D-AD10,U+AD12-AD1B,U+AD1D-AD33,U+AD35-AD48,U+AD4A-AD4F,U+AD51-AD6B,U+AD6E-AD6F,U+AD71-AD72,U+AD77-AD7C,U+AD7E,U+AD80,U+AD82-AD87,U+AD89-AD8B,U+AD8D-AD8F,U+AD91-AD9B}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.63-B35xsm4O.woff2)format("woff2-variations");unicode-range:U+AC25-AC2C,U+AC2E,U+AC30,U+AC32-AC37,U+AC39-AC3F,U+AC41-AC4C,U+AC4E-AC6F,U+AC72-AC73,U+AC75-AC76,U+AC79-AC7F,U+AC82,U+AC84-AC88,U+AC8A-AC8B,U+AC8D-AC8F,U+AC91-AC93,U+AC95-AC9B,U+AC9D-AC9E,U+ACA1-ACA7,U+ACAB,U+ACAD-ACAF,U+ACB1-ACB7,U+ACBA-ACBB,U+ACBE-ACC0,U+ACC2-ACC3,U+ACC5-ACDF}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.64-CTbrgYF9.woff2)format("woff2-variations");unicode-range:U+99DF,U+99ED,U+99F1,U+99FF,U+9A01,U+9A08,U+9A0E-9A0F,U+9A19,U+9A2B,U+9A30,U+9A36-9A37,U+9A40,U+9A43,U+9A45,U+9A4D,U+9A55,U+9A57,U+9A5A-9A5B,U+9A5F,U+9A62,U+9A65,U+9A69-9A6A,U+9AA8,U+9AB8,U+9AD3,U+9AE5,U+9AEE,U+9B1A,U+9B27,U+9B2A,U+9B31,U+9B3C,U+9B41-9B45,U+9B4F,U+9B54,U+9B5A,U+9B6F,U+9B8E,U+9B91,U+9B9F,U+9BAB,U+9BAE,U+9BC9,U+9BD6,U+9BE4,U+9BE8,U+9C0D,U+9C10,U+9C12,U+9C15,U+9C25,U+9C32,U+9C3B,U+9C47,U+9C49,U+9C57,U+9CE5,U+9CE7,U+9CE9,U+9CF3-9CF4,U+9CF6,U+9D09,U+9D1B,U+9D26,U+9D28,U+9D3B,U+9D51,U+9D5D,U+9D60-9D61,U+9D6C,U+9D72,U+9DA9,U+9DAF,U+9DB4,U+9DC4,U+9DD7,U+9DF2,U+9DF8-9DFA,U+9E1A,U+9E1E,U+9E75,U+9E79,U+9E7D,U+9E7F,U+9E92-9E93,U+9E97,U+9E9D,U+9E9F,U+9EA5,U+9EB4-9EB5,U+9EBB,U+9EBE,U+9EC3,U+9ECD-9ECE,U+9ED4,U+9ED8,U+9EDB-9EDC,U+9EDE,U+9EE8,U+9EF4,U+9F07-9F08,U+9F0E,U+9F13,U+9F20,U+9F3B,U+9F4A-9F4B,U+9F4E,U+9F52,U+9F5F,U+9F61,U+9F67,U+9F6A,U+9F6C,U+9F77,U+9F8D,U+9F90,U+9F95,U+9F9C,U+AC02-AC03,U+AC05-AC06,U+AC09-AC0F,U+AC17-AC18,U+AC1B,U+AC1E-AC1F,U+AC21-AC23}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.65-B66rjuyf.woff2)format("woff2-variations");unicode-range:U+338C-339C,U+339F-33A0,U+33A2-33CB,U+33CF-33D0,U+33D3,U+33D6,U+33D8,U+33DB-33DD,U+4E01,U+4E03,U+4E07-4E08,U+4E11,U+4E14-4E15,U+4E18-4E19,U+4E1E,U+4E32,U+4E38-4E39,U+4E42-4E43,U+4E45,U+4E4D-4E4F,U+4E56,U+4E58-4E59,U+4E5D-4E5E,U+4E6B,U+4E6D,U+4E73,U+4E76-4E77,U+4E7E,U+4E82,U+4E86,U+4E88,U+4E8E,U+4E90-4E92,U+4E94-4E95,U+4E98,U+4E9B,U+4E9E,U+4EA1-4EA2,U+4EA4-4EA6,U+4EA8,U+4EAB,U+4EAD-4EAE,U+4EB6,U+4EC0-4EC1,U+4EC4,U+4EC7,U+4ECB,U+4ECD,U+4ED4-4ED5,U+4ED7-4ED9,U+4EDD,U+4EDF,U+4EE4,U+4EF0,U+4EF2,U+4EF6-4EF7,U+4EFB,U+4F01,U+4F09,U+4F0B,U+4F0D-4F11,U+4F2F,U+4F34,U+4F36,U+4F38,U+4F3A,U+4F3C-4F3D}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.66-C3HqaDeY.woff2)format("woff2-variations");unicode-range:U+3136,U+3138,U+313A-3140,U+3143-3144,U+3150,U+3152,U+3154-3156,U+3158-315B,U+315D-315F,U+3162,U+3164-318C,U+318E,U+3200-321B,U+3231,U+3239,U+3251-325A,U+3260-327B,U+327E-327F,U+328A-3290,U+3294,U+329E,U+32A5,U+3380-3384,U+3388-338B}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.67-BmuXdlDy.woff2)format("woff2-variations");unicode-range:U+2F7D,U+2F7F-2F8B,U+2F8E-2F90,U+2F92-2F97,U+2F99-2FA0,U+2FA2-2FA3,U+2FA5-2FA9,U+2FAC-2FB1,U+2FB3-2FBC,U+2FC1-2FCA,U+2FCD-2FD4,U+3003,U+3012-3019,U+301C,U+301E-3020,U+3036,U+3041,U+3043,U+3045,U+3047,U+3049,U+304E,U+3050,U+3052,U+3056,U+305A,U+305C,U+305E,U+3062,U+3065,U+306C,U+3070-307D,U+3080,U+3085,U+3087,U+308E,U+3090-3091,U+30A1,U+30A5,U+30A9,U+30AE,U+30B1-30B2,U+30B4,U+30B6,U+30BC-30BE,U+30C2,U+30C5,U+30CC,U+30D2,U+30D4,U+30D8-30DD,U+30E4,U+30E6,U+30E8,U+30EE,U+30F0-30F2,U+30F4-30F6,U+3133,U+3135}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.68-DS9B48d0.woff2)format("woff2-variations");unicode-range:U+2541-254B,U+25A4-25A9,U+25B1,U+25B5,U+25B9,U+25BF,U+25C1,U+25C3,U+25C9-25CA,U+25CC,U+25CE,U+25D0-25D1,U+25E6,U+25EF,U+260F,U+261D,U+261F,U+262F,U+2660,U+2664,U+2667-2669,U+266D,U+266F,U+2716,U+271A,U+273D,U+2756,U+2776-277F,U+278A-2793,U+2963,U+2965,U+2AC5-2AC6,U+2ACB-2ACC,U+2F00,U+2F04,U+2F06,U+2F08,U+2F0A-2F0B,U+2F11-2F12,U+2F14,U+2F17-2F18,U+2F1C-2F1D,U+2F1F-2F20,U+2F23-2F26,U+2F28-2F29,U+2F2B,U+2F2D,U+2F2F-2F32,U+2F38,U+2F3C-2F40,U+2F42-2F4C,U+2F4F-2F52,U+2F54-2F58,U+2F5A-2F66,U+2F69-2F70,U+2F72-2F76,U+2F78,U+2F7A-2F7C}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.69-YT16ymcp.woff2)format("woff2-variations");unicode-range:U+2479-2487,U+249C-24D1,U+24D3-24D7,U+24D9-24E9,U+24EB-24F4,U+2500-2501,U+2503,U+250C-2513,U+2515-2516,U+2518-2540}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.70-BUXiAGMT.woff2)format("woff2-variations");unicode-range:U+215B-215E,U+2162-2169,U+2170-2179,U+2195-2199,U+21B0-21B4,U+21BC,U+21C0,U+21C4-21C5,U+21CD,U+21CF-21D4,U+21E0-21E3,U+21E6-21E9,U+2200,U+2202-2203,U+2206-2209,U+220B-220C,U+220F,U+2211,U+2213,U+221A,U+221D-2220,U+2222,U+2225-2227,U+2229-222C,U+222E,U+2234-2237,U+223D,U+2243,U+2245,U+2248,U+2250-2253,U+225A,U+2260-2262,U+2264-2267,U+226A-226B,U+226E-2273,U+2276-2277,U+2279-227B,U+2280-2287,U+228A-228B,U+2295-2297,U+22A3-22A5,U+22BB-22BC,U+22CE-22CF,U+22DA-22DB,U+22EE-22EF,U+2306,U+2312,U+2314,U+2467-2478}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.71-DuPZj8us.woff2)format("woff2-variations");unicode-range:U+81-82,U+84,U+A2-A5,U+A7-A8,U+AA,U+AC,U+B1-B3,U+B6,U+B8-BA,U+BC-BE,U+C0,U+C2,U+C6-CB,U+CE-D0,U+D4,U+D8-D9,U+DB-DC,U+DE-DF,U+E6,U+EB,U+EE-F0,U+F4,U+F7-F9,U+FB,U+FE-FF,U+111,U+126-127,U+132-133,U+138,U+13F-142,U+149-14B,U+152-153,U+166-167,U+2BC,U+2C7,U+2D0,U+2D8-2D9,U+2DB-2DD,U+391-394,U+396-3A1,U+3A3-3A9,U+3B2-3B6,U+3B8,U+3BC,U+3BE-3C1,U+3C3-3C9,U+2010,U+2015-2016,U+2018-2019,U+201B,U+201F-2021,U+2025,U+2030,U+2033-2036,U+203C,U+203E,U+2042,U+2074,U+207A-207F,U+2081-2084,U+2109,U+2113,U+2116,U+2121,U+2126,U+212B,U+2153-2154}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.72-pYYGrEQR.woff2)format("woff2-variations");unicode-range:U+E8,U+2DA,U+2160,U+2194,U+3054,U+3058,U+306D,U+3086,U+308D,U+30AC,U+30BB,U+30C4,U+30CD-30CE,U+30E2,U+3132,U+3146,U+3149,U+339D,U+4E3B,U+4F0A,U+4FDD,U+4FE1,U+5409,U+540C,U+5834,U+592A-592B,U+5B9A,U+5DDE,U+5E0C,U+5E73,U+5F0F,U+60F3,U+653F,U+661F,U+662F,U+667A,U+683C,U+6B4C,U+6C11,U+767C,U+76EE,U+76F4,U+77F3,U+79D1,U+7A7A,U+7B2C,U+7D22,U+8207,U+8A00,U+8A71,U+9280,U+9580,U+958B,U+96C6,U+9762,U+98DF,U+9ED1,U+AC2D,U+ADC8,U+ADD3,U+AF48,U+B014,U+B134-B135,U+B158,U+B2AA,U+B35F,U+B6A4,U+B9CF,U+BB63,U+BD23,U+BE91,U+C29B,U+C3F4,U+C42C,U+C55C,U+C573,U+C58F,U+C78C,U+C7DD,U+C8F5,U+CAD1,U+CC48,U+CF10,U+CF20,U+D03C,U+D07D,U+D2A0,U+D30E,U+D38D,U+D3A8,U+D3C8,U+D5E5,U+D5F9,U+D6E4,U+F90A,U+FF02,U+FF1C}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.73-DMrK970F.woff2)format("woff2-variations");unicode-range:U+3B1,U+2466,U+25A1,U+25A3,U+261C,U+3008-3009,U+305B,U+305D,U+3069,U+30A7,U+30BA,U+30CF,U+30EF,U+3151,U+3157,U+4E4B,U+4E5F,U+4E8C,U+4ECA,U+4ED6,U+4F5B,U+50CF,U+5149,U+5165,U+5171,U+5229,U+529B,U+5316,U+539F,U+53F2,U+571F,U+5728,U+58EB,U+591C,U+5B78,U+5C11,U+5C55,U+5DDD,U+5E02,U+5FB7,U+60C5,U+610F,U+611F,U+6625,U+66F8,U+6797,U+679C,U+682A,U+6D2A,U+706B,U+7406,U+767B,U+76F8,U+77E5,U+7ACB,U+898B,U+8A69,U+8DEF,U+8FD1,U+901A,U+90E8,U+91CD,U+975E,U+AE14,U+AE6C,U+AEC0,U+AFC7,U+AFC9,U+B01C,U+B028,U+B308,U+B311,U+B314,U+B31C,U+B524,U+B560,U+B764,U+B920,U+B9E3,U+BD48,U+BE7D,U+C0DB,U+C231,U+C270,U+C2E3,U+C37D,U+C3ED,U+C530,U+C6A5,U+C6DC,U+C7A4,U+C954,U+C974,U+D000,U+D565,U+D667,U+D6C5,U+D79D,U+FF1E}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.74-D4tQnymK.woff2)format("woff2-variations");unicode-range:U+131,U+2032,U+2465,U+2642,U+3048,U+3051,U+3083-3084,U+308F,U+30C0,U+30D1,U+30D3,U+30D6,U+30DF,U+30E7,U+3153,U+4E16,U+4E8B,U+4EE5,U+5206,U+52A0,U+52D5,U+53E4,U+53EF,U+54C1,U+57CE,U+597D,U+5B8C,U+5EA6,U+5F8C,U+5F97,U+6210,U+6240,U+624B,U+6728,U+6BD4,U+7236,U+7269,U+7279,U+738B,U+7528,U+7530,U+767E,U+798F,U+8005,U+8A18,U+90FD,U+91CC,U+9577,U+9593,U+98A8,U+AC20,U+ACF6,U+AD90,U+AF5D,U+AF80,U+AFCD,U+AFF0,U+B0A1,U+B0B5,U+B1FD,U+B2FC,U+B380,U+B51B,U+B584,U+B5B3,U+B8FD,U+B93C,U+B9F4,U+BB44,U+BC08,U+BC27,U+BC49,U+BE55,U+BE64,U+BFB0,U+BFC5,U+C178,U+C21F,U+C314,U+C4F1,U+C58D,U+C664,U+C698,U+C6A7,U+C6C1,U+C9ED,U+CAC0,U+CACC,U+CAD9,U+CCB5,U+CDCC,U+D0E4,U+D143,U+D320,U+D330,U+D54D,U+FF06,U+FF1F,U+FF5E}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.75-CxKdrRNf.woff2)format("woff2-variations");unicode-range:U+B4,U+20A9,U+20AC,U+2190,U+24D8,U+2502,U+2514,U+2592,U+25C7-25C8,U+2663,U+3060,U+3064,U+3081,U+3088,U+30A3,U+30A6,U+30AA,U+30B5,U+30C7,U+30CA-30CB,U+30D0,U+30E3,U+30E5,U+339E,U+4E09,U+4EAC,U+4F5C,U+5167-5168,U+516C,U+51FA,U+5408,U+540D,U+591A,U+5B57,U+6211,U+65B9,U+660E,U+6642,U+6700,U+6B63,U+6E2F,U+7063,U+7532,U+793E,U+81EA,U+8272,U+82B1,U+897F,U+8ECA,U+91CE,U+AC38,U+AD76,U+AE84,U+AECC,U+B07D,U+B0B1,U+B215,U+B2A0,U+B310,U+B3D7,U+B52A,U+B618,U+B775,U+B797,U+BCD5,U+BD59,U+BE80,U+BEA8,U+BED1,U+BEE4-BEE5,U+C060,U+C2EF,U+C329,U+C3DC,U+C597,U+C5BD,U+C5E5,U+C69C,U+C9D6,U+CA29,U+CA5C,U+CA84,U+CC39,U+CC3B,U+CE89,U+CEE5,U+CF65,U+CF85,U+D058,U+D145,U+D22D,U+D325,U+D37D,U+D3AD,U+D769,U+FF0C}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.76-DhPm2b_q.woff2)format("woff2-variations");unicode-range:U+2161,U+2228,U+2299,U+2464,U+2517,U+2640,U+3042,U+304A,U+3053,U+3061,U+307F,U+3082,U+308C,U+3092,U+30A8,U+30AB,U+30AD,U+30B0,U+30B3,U+30B7,U+30C1,U+30C6,U+30C9,U+30D5,U+30D7,U+30DE,U+30E0-30E1,U+30EC-30ED,U+4E0B,U+4E0D,U+4EE3,U+53F0,U+548C,U+5B89,U+5BB6,U+5C0F,U+611B,U+6771,U+6AA2,U+6BCD,U+6C34,U+6CD5,U+6D77,U+767D,U+795E,U+8ECD,U+9999,U+9AD8,U+AC07,U+AC1A,U+AC40,U+AD0C,U+AD88,U+ADA4,U+AE01,U+AE65,U+AEBD,U+AEC4,U+AFE8,U+B139,U+B205,U+B383,U+B38C,U+B42C,U+B461,U+B55C,U+B78F,U+B8FB,U+B9F7,U+BAFC,U+BC99,U+BED8,U+BFCD,U+C0BF,U+C0F9,U+C167,U+C204,U+C20F,U+C22F,U+C258,U+C298,U+C2BC,U+C388,U+C501,U+C50C,U+C5B9,U+C5CE,U+C641,U+C648,U+C73D,U+CA50,U+CA61,U+CC4C,U+CEAC,U+D0D4,U+D5F7,U+D6D7,U+FF1A}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.77-DwaxqOC8.woff2)format("woff2-variations");unicode-range:U+2103,U+2463,U+25C6,U+25CB,U+266C,U+3001,U+300A,U+3046,U+304C-304D,U+304F,U+3055,U+3059,U+3063,U+3066-3068,U+306F,U+3089,U+30B8,U+30BF,U+314F,U+4E0A,U+570B,U+5730,U+5916,U+5929,U+5C71,U+5E74,U+5FC3,U+601D,U+6027,U+63D0,U+6709,U+6734,U+751F,U+7684,U+82F1,U+9053,U+91D1,U+97F3,U+AC2F,U+AC4D,U+ADC4,U+ADE4,U+AE41,U+AE4D-AE4E,U+AED1,U+AFB9,U+B0E0,U+B299,U+B365,U+B46C,U+B480,U+B4C8,U+B7B4,U+B819,U+B918,U+BAAB,U+BAB9,U+BE8F,U+BED7,U+C0EC,U+C19F,U+C1A5,U+C3D9,U+C464,U+C53D,U+C553,U+C570,U+C5CC,U+C633,U+C6A4,U+C7A3,U+C7A6,U+C886,U+C9D9-C9DA,U+C9EC,U+CA0C,U+CC21,U+CD1B,U+CD78,U+CDC4,U+CEF8,U+CFE4,U+D0A5,U+D0B5,U+D0EC,U+D15D,U+D188,U+D23C,U+D2AC,U+D729,U+D79B,U+FF01,U+FF08-FF09,U+FF5C}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.78-DhqRbBzT.woff2)format("woff2-variations");unicode-range:U+2039-203A,U+223C,U+25B3,U+25B7,U+25BD,U+25CF,U+266A,U+3002,U+300B,U+304B,U+3057,U+305F,U+306A-306B,U+307E,U+308A-308B,U+3093,U+30A2,U+30AF,U+30B9,U+30C3,U+30C8,U+30E9-30EB,U+33A1,U+4E00,U+524D,U+5357,U+5B50,U+7121,U+884C,U+9751,U+AC94,U+AEBE,U+AECD,U+AF08,U+AF41,U+AF49,U+B010,U+B053,U+B109,U+B11B,U+B128,U+B154,U+B291,U+B2E6,U+B301,U+B385,U+B525,U+B5B4,U+B729,U+B72F,U+B738,U+B7FF,U+B837,U+B975,U+BA67,U+BB47,U+BC1F,U+BD90,U+BFD4,U+C27C,U+C324,U+C379,U+C3E0,U+C465,U+C53B,U+C58C,U+C610,U+C653,U+C6CD,U+C813,U+C82F,U+C999,U+C9E0,U+CAC4,U+CAD3,U+CBD4,U+CC10,U+CC22,U+CCB8,U+CCBC,U+CDA5,U+CE84,U+CEA3,U+CF67,U+CFE1,U+D241,U+D30D,U+D31C,U+D391,U+D401,U+D479,U+D5C9,U+D5DB,U+D649,U+D6D4}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.79-XpoyPP38.woff2)format("woff2-variations");unicode-range:U+B0,U+E9,U+2193,U+2462,U+260E,U+261E,U+300E-300F,U+3044,U+30A4,U+30FB-30FC,U+314D,U+5973,U+6545,U+6708,U+7537,U+AC89,U+AC9C,U+ACC1,U+AD04,U+AD75,U+AD7D,U+AE45,U+AE61,U+AF42,U+B0AB,U+B0AF,U+B0B3,U+B12C,U+B194,U+B1A8,U+B220,U+B258,U+B284,U+B2FF,U+B315,U+B371,U+B3D4-B3D5,U+B460,U+B527,U+B534,U+B810,U+B818,U+B98E,U+BA55,U+BBAC,U+BC0B,U+BC40,U+BCA1,U+BCCD,U+BD93,U+BE54,U+BE5A,U+BF08,U+BF50,U+BF55,U+BFDC,U+C0C0,U+C0D0,U+C0F4,U+C100,U+C11E,U+C170,U+C20D,U+C274,U+C290,U+C308,U+C369,U+C539,U+C587,U+C5FF,U+C6EC,U+C70C,U+C7AD,U+C7C8,U+C83C,U+C881,U+CB48,U+CC60,U+CE69,U+CE6B,U+CE75,U+CF04,U+CF08,U+CF55,U+CF70,U+CFFC,U+D0B7,U+D1A8,U+D2C8,U+D384,U+D47C,U+D48B,U+D5DD,U+D5E8,U+D720,U+D759,U+F981}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.80-DsV9Qp_h.woff2)format("woff2-variations");unicode-range:U+E0,U+E2,U+395,U+3B7,U+3BA,U+2460-2461,U+25A0,U+3010-3011,U+306E,U+30F3,U+314A,U+314C,U+5927,U+65B0,U+7E41,U+97D3,U+9AD4,U+AD49,U+AE0B,U+AE0D,U+AE43,U+AE5D,U+AECF,U+AF3C,U+AF64,U+AFD4,U+B080,U+B084,U+B0C5,U+B10C,U+B1E8,U+B2AC,U+B36E,U+B451,U+B515,U+B540,U+B561,U+B6AB,U+B6B1,U+B72C,U+B730,U+B744,U+B800,U+B8EC,U+B8F0,U+B904,U+B968,U+B96D,U+B987,U+B9D9,U+BB36,U+BB49,U+BC2D,U+BC43,U+BCF6,U+BD89,U+BE57,U+BE61,U+BED4,U+C090,U+C130,U+C148,U+C19C,U+C2F9,U+C36C,U+C37C,U+C384,U+C3DF,U+C575,U+C584,U+C660,U+C719,U+C816,U+CA4D,U+CA54,U+CABC,U+CB49,U+CC14,U+CFF5,U+D004,U+D038,U+D0B4,U+D0D3,U+D0E0,U+D0ED,U+D131,U+D1B0,U+D31F,U+D33D,U+D3A0,U+D3AB,U+D514,U+D584,U+D6A1,U+D6CC,U+D749,U+D760,U+D799}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.81-BZzF9Hb3.woff2)format("woff2-variations");unicode-range:U+24,U+60,U+3B9,U+3BB,U+3BD,U+2191,U+2606,U+300C-300D,U+3131,U+3134,U+3139,U+3141-3142,U+3148,U+3161,U+3163,U+321C,U+4EBA,U+5317,U+AC31,U+AC77,U+AC9F,U+ACB9,U+ACF0-ACF1,U+ACFD,U+AD73,U+AF3D,U+B00C,U+B04A,U+B057,U+B0C4,U+B188,U+B1CC,U+B214,U+B2DB,U+B2EE,U+B304,U+B4ED,U+B518,U+B5BC,U+B625,U+B69C-B69D,U+B7AC,U+B801,U+B86C,U+B959,U+B95C,U+B985,U+BA48,U+BB58,U+BC0C,U+BC38,U+BC85,U+BC9A,U+BF40,U+C068,U+C0BD,U+C0CC,U+C12F,U+C149,U+C1E0,U+C22B,U+C22D,U+C250,U+C2FC,U+C300,U+C313,U+C370,U+C3D8,U+C557,U+C580,U+C5E3,U+C62E,U+C634,U+C6F0,U+C74D,U+C783,U+C78E,U+C796,U+C7BC,U+C92C,U+CA4C,U+CC1C,U+CC54,U+CC59,U+CE04,U+CF30,U+CFC4,U+D140,U+D321,U+D38C,U+D399,U+D54F,U+D587,U+D5D0,U+D6E8,U+D770}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.82-BgAHe30u.woff2)format("woff2-variations");unicode-range:U+D7,U+EA,U+FC,U+2192,U+25BC,U+3000,U+3137,U+3145,U+315C,U+7F8E,U+AC13,U+AC71,U+AC90,U+ACB8,U+ACE7,U+AD7F,U+AE50,U+AEF4,U+AF34,U+AFBC,U+B048,U+B09A,U+B0AD,U+B0BC,U+B113,U+B125,U+B141,U+B20C,U+B2D9,U+B2ED,U+B367,U+B369,U+B374,U+B3CB,U+B4EC,U+B611,U+B760,U+B81B,U+B834,U+B8B0,U+B8E1,U+B989,U+B9D1,U+B9E1,U+B9FA,U+BA4D,U+BA78,U+BB35,U+BB54,U+BBF9,U+BC11,U+BCB3,U+BD05,U+BD95,U+BDD4,U+BE10,U+BED0,U+BF51,U+C0D8,U+C232,U+C2B7,U+C2EB,U+C378,U+C500,U+C52C,U+C549,U+C568,U+C598,U+C5C9,U+C61B,U+C639,U+C67C,U+C717,U+C78A,U+C80A,U+C90C-C90D,U+C950,U+C9E7,U+CBE4,U+CCA9,U+CCE4,U+CDB0,U+CE78,U+CE94,U+CE98,U+CF8C,U+D018,U+D034,U+D0F1,U+D1B1,U+D280,U+D2F8,U+D338,U+D380,U+D3B4,U+D610,U+D69F,U+D6FC,U+D758}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.83-DF-zBLLe.woff2)format("woff2-variations");unicode-range:U+E7,U+2022,U+203B,U+25C0,U+2605,U+2661,U+3147,U+318D,U+672C,U+8A9E,U+ACAA,U+ACBC,U+AD1C,U+AE4A,U+AE5C,U+B044,U+B054,U+B0C8-B0C9,U+B2A6,U+B2D0,U+B35C,U+B364,U+B428,U+B454,U+B465,U+B4B7,U+B4E3,U+B51C,U+B5A1,U+B784,U+B790,U+B7AB,U+B7F4,U+B82C,U+B835,U+B8E9,U+B8F8,U+B9D8,U+B9F9,U+BA5C,U+BA64,U+BABD,U+BB18,U+BB3B,U+BBFF,U+BC0D,U+BC45,U+BC97,U+BCBC,U+BE45,U+BE75,U+BE7C,U+BFCC,U+C0B6,U+C0F7,U+C14B,U+C2B4,U+C30D,U+C4F8,U+C5BB,U+C5D1,U+C5E0,U+C5EE,U+C5FD,U+C606,U+C6C5,U+C6E0,U+C708,U+C81D,U+C820,U+C824,U+C878,U+C918,U+C96C,U+C9E4,U+C9F1,U+CC2E,U+CD09,U+CEA1,U+CEF5,U+CEF7,U+CF64,U+CF69,U+CFE8,U+D035,U+D0AC,U+D230,U+D234,U+D2F4,U+D31D,U+D575,U+D578,U+D608,U+D614,U+D718,U+D751,U+D761,U+D78C,U+D790}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.84-Brb8EsYQ.woff2)format("woff2-variations");unicode-range:U+2665,U+3160,U+4E2D,U+6587,U+65E5,U+AC12,U+AC14,U+AC16,U+AC81,U+AD34,U+ADE0,U+AE54,U+AEBC,U+AF2C,U+AFC0,U+AFC8,U+B04C,U+B08C,U+B099,U+B0A9,U+B0AC,U+B0AE,U+B0B8,U+B123,U+B179,U+B2E5,U+B2F7,U+B4C0,U+B531,U+B538,U+B545,U+B550,U+B5A8,U+B6F0,U+B728,U+B73B,U+B7AD,U+B7ED,U+B809,U+B864,U+B86D,U+B871,U+B9BF,U+B9F5,U+BA40,U+BA4B,U+BA58,U+BA87,U+BAAC,U+BBC0,U+BC16,U+BC34,U+BD07,U+BD99,U+BE59,U+BFD0,U+C058,U+C0E4,U+C0F5,U+C12D,U+C139,U+C228,U+C529,U+C5C7,U+C635,U+C637,U+C735,U+C77D,U+C787,U+C789,U+C8C4,U+C989,U+C98C,U+C9D0,U+C9D3,U+CC0C,U+CC99,U+CD0C,U+CD2C,U+CD98,U+CDA4,U+CE59,U+CE60,U+CE6D,U+CEA0,U+D0D0-D0D1,U+D0D5,U+D14D,U+D1A4,U+D29C,U+D2F1,U+D301,U+D39C,U+D3BC,U+D4E8,U+D540,U+D5EC,U+D640,U+D750}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.85-Byo_x2hf.woff2)format("woff2-variations");unicode-range:U+5E,U+25B2,U+25B6,U+314E,U+AC24,U+ACE1,U+ACE4,U+AE68,U+AF2D,U+B0D0,U+B0E5,U+B150,U+B155,U+B193,U+B2C9,U+B2DD,U+B3C8,U+B3FC,U+B410,U+B458,U+B4DD,U+B5A0,U+B5A4,U+B5BB,U+B7B5,U+B838,U+B840,U+B86F,U+B8F9,U+B960,U+B9E5,U+BAB8,U+BB50,U+BC1D,U+BC24-BC25,U+BCA8,U+BCBD,U+BD04,U+BD10,U+BD24,U+BE48,U+BE5B,U+BE68,U+C05C,U+C12C,U+C140,U+C15C,U+C168,U+C194,U+C219,U+C27D,U+C2A8,U+C2F1,U+C2F8,U+C368,U+C554-C555,U+C559,U+C564,U+C5D8,U+C5FC,U+C625,U+C65C,U+C6B1,U+C728,U+C794,U+C84C,U+C88C,U+C8E0,U+C8FD,U+C998,U+C9DD,U+CC0D,U+CC30,U+CEEC,U+CF13,U+CF1C,U+CF5C,U+D050,U+D07C,U+D0A8,U+D134,U+D138,U+D154,U+D1F4,U+D2BC,U+D329,U+D32C,U+D3D0,U+D3F4,U+D3FC,U+D56B,U+D5CC,U+D600-D601,U+D639,U+D6C8,U+D754,U+D765}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.86-XG7lTN_6.woff2)format("woff2-variations");unicode-range:U+3C-3D,U+2026,U+24D2,U+314B,U+AC11,U+ACF3,U+AD74,U+AD81,U+ADF9,U+AE34,U+AF43,U+AFB8,U+B05D,U+B07C,U+B110,U+B118,U+B17C,U+B180,U+B18D,U+B192,U+B2CC,U+B355,U+B378,U+B4A4,U+B4EF,U+B78D,U+B799,U+B7A9,U+B7FD,U+B807,U+B80C,U+B839,U+B9B4,U+B9DB,U+BA3C,U+BAB0,U+BBA4,U+BC94,U+BE4C,U+C154,U+C1C4,U+C26C,U+C2AC,U+C2ED,U+C4F4,U+C55E,U+C561,U+C571,U+C5B5,U+C5C4,U+C654-C655,U+C695,U+C6E8,U+C6F9,U+C724,U+C751,U+C775,U+C7A0,U+C7C1,U+C874,U+C880,U+C9D5,U+C9F8,U+CABD,U+CC29,U+CC2C,U+CCA8,U+CCAB,U+CCD0,U+CE21,U+CE35,U+CE7C,U+CE90,U+CEE8,U+CEF4,U+CFE0,U+D070,U+D0B9,U+D0C1,U+D0C4,U+D0C8,U+D15C,U+D1A1,U+D2C0,U+D300,U+D314,U+D3ED,U+D478,U+D480,U+D48D,U+D508,U+D53D,U+D5E4,U+D611,U+D61C,U+D68D,U+D6A8,U+D798}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.87-Lzui2vbK.woff2)format("woff2-variations");unicode-range:U+23,U+25,U+5F,U+A9,U+AC08,U+AC78,U+ACA8,U+ACAC,U+ACE8,U+AD70,U+ADC0,U+ADDC,U+B137,U+B140,U+B208,U+B290,U+B2F5,U+B3C5,U+B3CC,U+B420,U+B429,U+B529,U+B530,U+B77D,U+B79C,U+B7A8,U+B7C9,U+B7F0,U+B7FC,U+B828,U+B860,U+B9AD,U+B9C1,U+B9C9,U+B9DD-B9DE,U+B9E8,U+BA38-BA39,U+BABB,U+BC00,U+BC8C,U+BCA0,U+BCA4,U+BCD1,U+BCFC,U+BD09,U+BDF0,U+BE60,U+C0AD,U+C0B4,U+C0BC,U+C190,U+C1FC,U+C220,U+C288,U+C2B9,U+C2F6,U+C528,U+C545,U+C558,U+C5BC,U+C5D4,U+C600,U+C644,U+C6C0,U+C6C3,U+C721,U+C798,U+C7A1,U+C811,U+C838,U+C871,U+C904,U+C990,U+C9DC,U+CC38,U+CC44,U+CCA0,U+CD1D,U+CD95,U+CDA9,U+CE5C,U+CF00,U+CF58,U+D150,U+D22C,U+D305,U+D328,U+D37C,U+D3F0,U+D551,U+D5A5,U+D5C8,U+D5D8,U+D63C,U+D64D,U+D669,U+D734,U+D76C}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.88-CqX6JSgh.woff2)format("woff2-variations");unicode-range:U+26,U+2B,U+3E,U+40,U+7E,U+AC01,U+AC19,U+AC1D,U+ACA0,U+ACA9,U+ACB0,U+AD8C,U+AE09,U+AE38,U+AE40,U+AED8,U+B09C,U+B0A0,U+B108,U+B204,U+B298,U+B2D8,U+B2EB-B2EC,U+B2F4,U+B313,U+B358,U+B450,U+B4E0,U+B54C,U+B610,U+B780,U+B78C,U+B791,U+B8E8,U+B958,U+B974,U+B984,U+B9B0,U+B9BC-B9BD,U+B9CE,U+BA70,U+BBFC,U+BC0F,U+BC15,U+BC1B,U+BC31,U+BC95,U+BCC0,U+BCC4,U+BD81,U+BD88,U+C0C8,U+C11D,U+C13C,U+C158,U+C18D,U+C1A1,U+C21C,U+C4F0,U+C54A,U+C560,U+C5B8,U+C5C8,U+C5F4,U+C628,U+C62C,U+C678,U+C6CC,U+C808,U+C810,U+C885,U+C88B,U+C900,U+C988,U+C99D,U+C9C8,U+CC3D-CC3E,U+CC45,U+CD08,U+CE20,U+CEE4,U+D074,U+D0A4,U+D0DD,U+D2B9,U+D3B8,U+D3C9,U+D488,U+D544,U+D559,U+D56D,U+D588,U+D615,U+D648,U+D655,U+D658,U+D65C}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.89-DOzqWPpX.woff2)format("woff2-variations");unicode-range:U+D,U+7C,U+AC10,U+AC15,U+AC74,U+AC80,U+AC83,U+ACC4,U+AD11,U+AD50,U+AD6D,U+ADFC,U+AE00,U+AE08,U+AE4C,U+B0A8,U+B124,U+B144,U+B178,U+B274,U+B2A5,U+B2E8,U+B2F9,U+B354,U+B370,U+B418,U+B41C,U+B4F1,U+B514,U+B798,U+B808,U+B824-B825,U+B8CC,U+B978,U+B9D0,U+B9E4,U+BAA9,U+BB3C,U+BC18,U+BC1C,U+BC30,U+BC84,U+BCF5,U+BCF8,U+BD84,U+BE0C,U+BE14,U+C0B0,U+C0C9,U+C0DD,U+C124,U+C2DD,U+C2E4,U+C2EC,U+C54C,U+C57C-C57D,U+C591,U+C5C5-C5C6,U+C5ED,U+C608,U+C640,U+C6B8,U+C6D4,U+C784,U+C7AC,U+C800-C801,U+C9C1,U+C9D1,U+CC28,U+CC98,U+CC9C,U+CCAD,U+CD5C,U+CD94,U+CD9C,U+CDE8,U+CE68,U+CF54,U+D0DC,U+D14C,U+D1A0,U+D1B5,U+D2F0,U+D30C,U+D310,U+D398,U+D45C,U+D50C,U+D53C,U+D560,U+D568,U+D589,U+D604,U+D6C4,U+D788}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.90-BF7RiZjm.woff2)format("woff2-variations");unicode-range:U+AC04,U+AC1C,U+AC70,U+AC8C,U+ACBD,U+ACF5,U+ACFC,U+AD00,U+AD6C,U+ADF8,U+B098,U+B0B4,U+B294,U+B2C8,U+B300,U+B3C4,U+B3D9,U+B4DC,U+B4E4,U+B77C,U+B7EC,U+B85D,U+B97C,U+B9C8,U+B9CC,U+BA54,U+BA74,U+BA85,U+BAA8,U+BB34,U+BB38,U+BBF8,U+BC14,U+BC29,U+BC88,U+BCF4,U+BD80,U+BE44,U+C0C1,U+C11C,U+C120,U+C131,U+C138,U+C18C,U+C218,U+C2B5,U+C2E0,U+C544,U+C548,U+C5B4,U+C5D0,U+C5EC,U+C5F0,U+C601,U+C624,U+C694,U+C6A9,U+C6B0,U+C6B4,U+C6D0,U+C704,U+C720,U+C73C,U+C740,U+C744,U+C74C,U+C758,U+C77C,U+C785,U+C788,U+C790-C791,U+C7A5,U+C804,U+C815,U+C81C,U+C870,U+C8FC,U+C911,U+C9C4,U+CCB4,U+CE58,U+CE74,U+D06C,U+D0C0,U+D130,U+D2B8,U+D3EC,U+D504,U+D55C,U+D569,U+D574,U+D638,U+D654,U+D68C}@font-face{font-family:Pretendard Variable;font-style:normal;font-display:swap;font-weight:45 920;src:url(/assets/PretendardVariable.subset.91-Csm0YNoH.woff2)format("woff2-variations");unicode-range:U+20-22,U+27-2A,U+2C-39,U+3A-3B,U+3F,U+41-4E,U+4F-5D,U+61-7B,U+7D,U+A0-A1,U+AB,U+AD-AE,U+B7,U+BB,U+BF,U+2013-2014,U+201C-201D,U+2122,U+AC00,U+ACE0,U+AE30,U+B2E4,U+B85C,U+B9AC,U+C0AC,U+C2A4,U+C2DC,U+C774,U+C778,U+C9C0,U+D558}@font-face{font-family:Outfit;font-style:normal;font-weight:500 700;font-display:swap;src:url(/assets/Outfit-latin-Bc-8i84L.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:500 700;font-display:swap;src:url(/assets/Outfit-latin-ext-DdQaqQDo.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--accent-50:#eff6ff;--accent-100:#dbeafe;--accent-200:#bfdbfe;--accent-300:#93c5fd;--accent-400:#60a5fa;--accent-500:#2e7df6;--accent-600:#2563eb;--accent-700:#1d4ed8;--accent-800:#1e40af;--accent-glow-soft:#2e7df614;--accent-glow-mid:#2e7df626;--accent-glow-strong:#2e7df64d;--green-500:#10b981;--green-600:#16a34a;--green-100:#d1fae5;--orange-500:#f97316;--cyan-500:#06b6d4;--cyan-600:#0891b2;--amber-50:#fffbeb;--amber-100:#fef3c7;--amber-200:#fde68a;--amber-300:#fcd34d;--amber-400:#fbbf24;--amber-500:#f59e0b;--amber-600:#d97706;--amber-700:#b45309;--amber-800:#92400e;--amber-900:#78350f;--red-500:#ef4444;--red-600:#dc2626;--red-700:#b91c1c;--red-100:#fee2e2;--red-50:#fef2f2;--red-200:#fecaca;--green-700:#15803d;--yellow-800:#854d0e;--red-400:#f87171;--violet-400:#a78bfa;--violet-500:#8b5cf6;--violet-700:#6d28d9;--red-300:#fca5a5;--sky-500:#0ea5e9;--violet-300:#c4b5fd;--teal-500:#14b8a6;--teal-700:#0f766e;--green-50:#f0fdf4;--green-800:#166534;--orange-50:#fff7ed;--orange-300:#fdba74;--orange-600:#ea580c;--orange-800:#9a3412;--indigo-100:#e0e7ff;--indigo-800:#3730a3;--fuchsia-100:#fae8ff;--fuchsia-800:#86198f;--violet-200:#ddd6fe;--violet-800:#5b21b6;--field-focus-bg:#fef9c3;--status-success-bg:var(--green-50);--status-success-border:var(--green-100);--status-success-text:var(--green-800);--status-warning-bg:var(--orange-50);--status-warning-border:var(--orange-300);--status-warning-text:var(--orange-800);--status-warning-icon:var(--orange-600);--status-error-bg:var(--red-50);--status-error-border:var(--red-200);--status-error-text:var(--color-danger);--status-info-bg:var(--accent-50);--status-info-border:var(--accent-200);--status-info-text:var(--accent-800);--st-dutyA-bg:var(--red-300);--st-dutyA-fg:#7f1d1d;--st-dutyB-bg:var(--red-400);--st-dutyB-fg:var(--color-text-on-accent);--st-splitA-bg:#fdba74;--st-splitA-fg:#7c2d12;--st-splitB-bg:#fb923c;--st-splitB-fg:#431407;--st-jeongpa-bg:#6366f1;--st-jeongpa-fg:var(--color-text-on-accent);--st-sangam-jogun-bg:#86efac;--st-sangam-jogun-fg:#14532d;--st-sangam-ilgun-bg:#93c5fd;--st-sangam-ilgun-fg:#1e3a8a;--st-sangam-nokhwa-bg:#5eead4;--st-sangam-nokhwa-fg:#134e4a;--st-leave-bg:var(--amber-300);--st-leave-fg:var(--amber-900);--st-bereavement-bg:#e9d5ff;--st-bereavement-fg:#4c1d95;--st-training-bg:#bef264;--st-training-fg:#365314;--st-trip-bg:#67e8f9;--st-trip-fg:#164e63;--st-o2-bg:#ddd6fe;--st-o2-fg:#4c1d95;--st-compOff-bg:#fbcfe8;--st-compOff-fg:#831843;--day-sun-bg:#fce7e7;--day-sat-bg:#dbeafe;--day-holiday-bg:#fce7e7;--cal-cell-today-bg:#f8faff;--cal-cell-weekend-bg:#fafafa;--cal-cell-holiday-bg:snow;--cal-holiday-chip-bg:#ef444414;--cal-holiday-chip-text:var(--red-700);--color-info:#1d4ed8;--color-sun-emphasis:var(--red-700);--text-3xs:clamp(9px, calc(.5625rem + .06vw), 10px);--text-2xs:clamp(10px, calc(.625rem + .06vw), 11px);--text-xs:clamp(11px, calc(.6875rem + .06vw), 12px);--text-sm:clamp(12px, calc(.75rem + .06vw), 13px);--text-base:clamp(13px, calc(.8125rem + .06vw), 14px);--text-md:clamp(14px, calc(.875rem + .06vw), 15px);--text-lg:clamp(16px, calc(1rem + .06vw), 17px);--text-xl:clamp(18px, calc(1.125rem + .13vw), 20px);--text-2xl:clamp(20px, calc(1.25rem + .13vw), 22px);--text-3xl:clamp(24px, calc(1.5rem + .26vw), 28px);--text-display:clamp(28px, calc(1.75rem + .26vw), 32px);--font-mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "DejaVu Sans Mono", monospace;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--leading-none:1;--leading-tight:1.25;--leading-snug:1.4;--leading-normal:1.5;--leading-relaxed:1.6;--blur-md:8px;--blur-lg:12px;--blur-xl:16px;--space-1:2px;--space-2:4px;--space-3:6px;--space-4:8px;--space-5:10px;--space-6:12px;--space-7:14px;--space-8:16px;--space-9:18px;--space-10:20px;--space-11:22px;--space-12:24px;--space-14:28px;--space-15:30px;--space-16:32px;--space-18:36px;--space-20:40px;--space-24:48px;--radius-xs:3px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:10px;--radius-2xl:12px;--radius-pill:999px;--radius-full:50%;--shadow-xs:0 1px 2px #0f172a0f;--shadow-sm:0 2px 4px #0f172a14;--shadow-md:0 4px 12px #0f172a1f;--shadow-lg:0 12px 32px #0f172a2e;--shadow-xl:0 20px 40px #0f172a38;--bg-overlay:#0f172a8c;--dur-fast:.15s;--dur-base:.2s;--dur-page:.32s;--dur-spin:.9s;--dur-shimmer:1.4s;--lift-y:-1px;--press-y:1px;--t-fast:80ms ease;--t-base:.12s ease;--t-slow:.2s ease;--t-slower:.3s ease;--bp-mobile:640px;--bp-tablet:1024px;--modal-max-h:min(88dvh, 720px);--modal-pad:clamp(12px, 3vw, 20px);--col-w-sm:100px;--col-w-md:130px;--col-w-lg:160px;--col-w-xl:200px;--bg-app:#fff;--bg-panel:var(--slate-50);--bg-header:var(--slate-100);--bg-row-alt:#fafbfc;--bg-hover:var(--accent-50);--bg-selected:var(--accent-100);--color-surface:var(--bg-app);--color-surface-hover:var(--bg-hover-neutral);--color-surface-sunken:var(--slate-50);--bg-hover-neutral:var(--slate-50);--bg-hover-danger:var(--red-100);--color-text:var(--slate-800);--color-text-muted:var(--slate-500);--color-text-faint:var(--slate-400);--color-text-on-accent:#fff;--border-default:var(--slate-200);--border-strong:var(--slate-300);--color-border:var(--border-default);--color-border-subtle:var(--slate-100);--color-border-strong:var(--border-strong);--color-accent:var(--accent-500);--color-accent-50:var(--accent-50);--color-accent-100:var(--accent-100);--color-accent-200:var(--accent-200);--color-accent-300:var(--accent-300);--color-accent-400:var(--accent-400);--color-accent-500:var(--accent-500);--color-accent-600:var(--accent-600);--color-accent-700:var(--accent-700);--color-accent-800:var(--accent-800);--color-mine:#ec4899;--color-accent-fill:var(--color-accent);--color-accent-fill-hover:var(--accent-700);--color-success:var(--green-500);--color-warning:var(--amber-600);--color-danger:var(--red-500);--color-important:var(--amber-500);--color-edit-mode:var(--amber-400);--focus-ring-color:var(--color-accent);--focus-ring-width:2px;--focus-ring-offset:2px;--focus-ring-offset-inset:-2px;--focus-ring:var(--focus-ring-width) solid var(--focus-ring-color);--input-pad-y-xs:3px;--input-pad-x-xs:6px;--input-pad-y-sm:6px;--input-pad-x-sm:8px;--input-pad-y-md:10px;--input-pad-x-md:12px;--modal-backdrop:#0f172a73;--modal-blur:6px;--header-h:56px;--mobile-nav-h:56px;--page-max-wide:100%;--page-max-prose:1280px;--tap-min:44px;--disabled-opacity:.5;--disabled-cursor:not-allowed;--z-base:0;--z-sticky:50;--z-header:100;--z-dropdown:200;--z-tooltip:250;--z-modal:1000;--z-modal-elevated:1100;--z-toast:1200;--z-overlay-top:9000;--bg-info:#2e7df61a;--bg-warning:#d977061f;--bg-danger:#dc26261f;--bg-success:#10b9811f;--flow-bg:#0b0f19;--flow-grid:var(--slate-800);--flow-node-default:var(--slate-700);--flow-node-highlight:#60a5fa;--signal-down:#2563eb;--signal-up:#b45309;--signal-both:#6d28d9;--signal-start-ring:#0f172a;--signal-legend-text:#fff;--signal-legend-bg-dim:#0f172a0a}:root[data-fluid-type=off],[data-fluid-type=off]{--text-3xs:9px;--text-2xs:10px;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:16px;--text-xl:18px;--text-2xl:20px;--text-3xl:24px;--text-display:28px}button:focus-visible,a:focus-visible,[role=button]:focus-visible,[role=tab]:focus-visible,[role=menuitem]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}button:disabled,input:disabled,select:disabled,textarea:disabled,[aria-disabled=true]{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.safe-area-px{padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right))}.safe-area-pb{padding-bottom:max(12px, env(safe-area-inset-bottom))}.scroll-touch{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.tap-44{min-height:var(--tap-min);min-width:var(--tap-min)}@media (hover:none) and (pointer:coarse){.tap-44-touch,.notice-action-btn,.home-card-action,.toast-close,.memo-todo-icon-btn,.notification-bell-btn,.ui-btn,.ui-iconbtn,.admin-settings-icon-btn{min-height:var(--tap-min);min-width:var(--tap-min)}}.stream-control-btn{width:var(--space-14);height:var(--space-14);color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:#0009;border:0;flex:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.stream-control-btn:hover{background:#000c}.stream-control-btn:focus-visible{outline-offset:2px;outline:2px solid #fff}@media (hover:none) and (pointer:coarse){.stream-control-btn{width:44px;height:44px}}@media (width<=640px){.ndi-header-actions{width:100%}.ndi-header-actions>*{flex:auto}.ndi-header-actions>[role=group]{display:flex}.ndi-header-actions>[role=group]>button{flex:auto;justify-content:center}.ndi-header-actions>button{justify-content:center}.ndi-header-actions button{min-height:44px}}@media (orientation:landscape) and (height<=500px){.ndi-segmented-control button span:last-child{display:none}.ndi-segmented-control button{padding:var(--space-3) var(--space-5)}}@media (width<=380px){.ndi-segmented-control button span:last-child{display:none}.ndi-segmented-control button{padding:var(--space-3) var(--space-5)}}.modal-shell{background:var(--bg-app);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:var(--modal-max-h);flex-direction:column;width:min(560px,92vw);display:flex;overflow:hidden}.modal-shell-narrow{width:min(420px,92vw)}.modal-shell-md{width:min(560px,92vw)}.modal-shell-wide{width:min(760px,94vw)}.modal-shell-xwide{width:min(960px,96vw)}@media (width>=641px) and (width<=1024px){.modal-shell-wide{width:min(680px,92vw)}.modal-shell-xwide{width:min(720px,92vw)}}@supports not (height:100dvh){.modal-shell{max-height:min(88vh,720px)}}.modal-shell>.modal-body{padding:var(--modal-pad);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;overflow-y:auto}.modal-shell>.modal-header,.modal-shell>.modal-footer{padding:var(--modal-pad);flex:none}.modal-shell>.modal-header{border-bottom:1px solid var(--border-default)}.modal-shell>.modal-footer{border-top:1px solid var(--border-default);padding-bottom:max(var(--modal-pad), env(safe-area-inset-bottom))}.page-below-header{height:calc(100dvh - var(--header-h));flex-direction:column;display:flex;overflow:hidden}@supports not (height:100dvh){.page-below-header{height:calc(100vh - var(--header-h))}}@media (width<=640px){.page-below-header{height:auto;min-height:calc(100dvh - var(--header-h));overflow:visible}input[type=text],input[type=search],input[type=email],input[type=tel],input[type=url],input[type=password],input[type=number],input[type=date],input[type=datetime-local],input[type=month],input[type=week],input[type=time],input:not([type]),textarea{font-size:16px!important}}@media (hover:none){.dr-card:hover,.dr-result-card:hover,.wage-table tbody tr:hover,.file-browser-table tbody tr:hover,.shift-matrix-filter-chip:hover,.shift-matrix-filter-chip:focus-visible,.ui-tab:hover,.ui-tab:focus-visible,.app-mode-tab:hover,.app-mode-tab:focus-visible,.cal-cell:hover{background:inherit;color:inherit}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-app);color:var(--color-text);width:100%;height:100dvh;font-family:Pretendard Variable,Pretendard,Inter,-apple-system,BlinkMacSystemFont,sans-serif;overflow:hidden}@supports not (height:100dvh){body{height:100vh}}#root{flex-direction:column;height:100%;display:flex}#root:before{content:"";height:env(safe-area-inset-top);background:var(--color-accent);flex-shrink:0;display:block}body,#root{max-width:100vw;overflow-x:hidden}@media (width<=640px){body{height:auto;min-height:100dvh;overflow-y:visible}#root{width:100%;height:auto;min-height:100dvh}}@media (width>=641px){.category-page-body[style*=overflow],.dr-list,.doc-list,.work-assignments-page,.network-ip-page-root,.rcp-page-root,.maint-stats-page,.maint-section,.maint-table-scroll,.cal-sidebar,.cal-grid,.projects-grid,.file-browser-body,.note-tree,.note-main,.wage-page,.admin-settings-page,.notice-widget-list{scrollbar-gutter:stable}}.react-flow__pane{background:0 0!important}.react-flow__node{border-radius:var(--radius-lg);will-change:transform;font-family:Pretendard Variable,Pretendard,Inter,sans-serif}.react-flow__node:hover{box-shadow:0 2px 12px var(--accent-glow-mid)}.react-flow__edge-path{stroke:var(--color-text-muted);stroke-width:2.5px;transition:stroke var(--t-slower), stroke-width var(--t-slower)}.react-flow__edge.animated .react-flow__edge-path{stroke-dasharray:5;will-change:stroke-dashoffset;animation:.5s linear infinite dashdraw}.react-flow__edge:hover .react-flow__edge-path{stroke:var(--color-accent);stroke-width:4px}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--color-accent);stroke-width:4px;filter:drop-shadow(0 0 4px var(--accent-glow-mid))}.edit-mode .react-flow__edge .react-flow__edge-interaction{stroke-width:20px;cursor:pointer}@media (hover:none) and (pointer:coarse){.edit-mode .react-flow__edge .react-flow__edge-interaction{stroke-width:24px}}.flow-edit-hint,.flow-macro-hint{z-index:var(--z-sticky);width:min(320px,100vw - 32px);padding:var(--space-7) var(--space-8) var(--space-6);background:var(--bg-panel);border:1px solid var(--color-accent);border-radius:var(--radius-xl);box-shadow:var(--shadow-md), 0 0 0 1px var(--accent-glow-mid);-webkit-backdrop-filter:blur(var(--blur-lg));backdrop-filter:blur(var(--blur-lg));color:var(--color-text);font-size:var(--text-sm);word-break:keep-all;overflow-wrap:break-word;position:absolute;top:60px;right:16px}.flow-macro-hint{border-color:color-mix(in srgb, var(--color-accent) 70%, var(--color-text-muted));left:60px;right:auto}.flow-edit-hint-close{color:var(--color-text-muted);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;display:flex;position:absolute;top:6px;right:6px}.flow-edit-hint-close:hover,.flow-edit-hint-close:focus-visible{background:var(--bg-hover);color:var(--color-text)}.flow-edit-hint-title{align-items:center;gap:var(--space-3);font-weight:var(--weight-semibold);font-size:var(--text-md);color:var(--color-accent);margin-bottom:var(--space-4);padding-right:var(--space-12);display:flex}.flow-edit-hint-list{gap:var(--space-3);font-size:var(--text-xs);line-height:var(--leading-normal);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.flow-edit-hint-list li{color:var(--color-text-muted)}.flow-edit-hint-list b{color:var(--color-text);font-weight:var(--weight-semibold);margin-right:var(--space-2)}.flow-edit-hint-list .kbd{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xs);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--text-xs);color:var(--color-text);margin:0 2px;padding:1px 6px;display:inline-block}.edit-mode{outline:2px solid var(--color-edit-mode);outline-offset:-2px}@media (width<=640px){.flow-edit-hint,.flow-macro-hint{width:auto;top:56px;left:8px;right:8px}}.flow-empty-room{z-index:10;padding:var(--space-8) var(--space-10);background:var(--bg-panel);border:1px dashed var(--border-default);border-radius:var(--radius-md);text-align:center;pointer-events:auto;word-break:keep-all;align-items:center;gap:var(--space-3);flex-direction:column;max-width:360px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.flow-empty-room-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text)}.flow-empty-room-body{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-snug)}.flow-empty-room-cta{margin-top:var(--space-3);padding:var(--space-4) var(--space-10);background:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-text-on-accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:filter var(--t-base)}.flow-empty-room-cta:hover,.flow-empty-room-cta:focus-visible{filter:brightness(1.1);outline:2px solid var(--color-accent);outline-offset:2px}.flow-empty-room-cta-alt{color:var(--color-accent);border:1px solid var(--border-default);background:0 0}.flow-empty-room-cta-alt:hover,.flow-empty-room-cta-alt:focus-visible{background:var(--bg-hover-neutral)}.macro-peek-bar{bottom:var(--space-8);z-index:11;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-6);background:var(--bg-panel);border:1px solid var(--border-default);border-left:3px solid var(--color-accent);border-radius:var(--radius-md);box-shadow:var(--shadow-md);pointer-events:auto;max-width:90vw;animation:.16s ease-out macro-peek-in;display:flex;position:absolute;left:50%;transform:translate(-50%)}@keyframes macro-peek-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.macro-peek-main{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.macro-peek-label{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:320px;overflow:hidden}.macro-peek-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.macro-peek-enter{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);background:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-text-on-accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;transition:filter var(--t-base), transform var(--t-base);display:inline-flex}.macro-peek-enter:hover,.macro-peek-enter:focus-visible{filter:brightness(1.1);outline:2px solid var(--color-accent);outline-offset:2px;transform:translateY(-1px)}.macro-peek-close{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;transition:background var(--t-base), color var(--t-base);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.macro-peek-close:hover,.macro-peek-close:focus-visible{background:var(--bg-hover);color:var(--color-text);outline:none}@media (width<=640px){.macro-peek-bar{left:var(--space-4);right:var(--space-4);flex-wrap:wrap;animation:none;transform:none}.macro-peek-label{max-width:100%}.macro-peek-enter{flex:1;justify-content:center}}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.macro-node-box{border-radius:var(--radius-2xl);text-align:center;min-width:200px;box-shadow:var(--shadow-md);background:#1e293b;border:2px solid #475569;padding:18px 28px}.macro-node-label{color:var(--color-text-on-accent);font-weight:var(--weight-bold);font-size:var(--text-md);font-family:Outfit,sans-serif;line-height:var(--leading-snug)}.macro-node-meta{color:var(--color-text-faint);font-size:var(--text-xs);margin-top:var(--space-2)}.macro-node-variant{font-size:var(--text-3xs);font-weight:var(--weight-bold);letter-spacing:.5px;color:#ffffffd9;padding:1px var(--space-3);border-radius:var(--radius-pill);text-transform:none;background:#0006;position:absolute;top:4px;left:8px}.macro-node-box{position:relative}.macro-node-box.editing{outline:2px solid var(--accent-500);outline-offset:3px;animation:2.4s ease-out macro-edit-pulse}@keyframes macro-edit-pulse{0%{box-shadow:0 0 #3b82f68c}60%{box-shadow:0 0 0 18px #3b82f600}to{box-shadow:0 0 #3b82f600}}.macro-node-box.core{background:linear-gradient(145deg,#1e3a8a,#111827);border-width:3px;border-color:#3b82f6;box-shadow:0 0 16px #3b82f659}.macro-node-box.external{background:linear-gradient(145deg,#581c87,#111827);border-style:dashed;border-color:#a855f7;box-shadow:0 0 16px #a855f74d}.react-flow__node-macroNode{box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.equip-node{border:1px solid var(--border-default,#e5e7eb);border-left:3px solid var(--color-text-faint,#9ca3af);border-radius:var(--radius-md,8px);min-width:150px;font-size:var(--text-sm,13px);color:var(--color-text,#111);background:#fff;padding:0;transition:box-shadow .16s,border-color .16s;overflow:hidden;box-shadow:0 1px 3px #00000014,0 1px 2px #0000000a}.equip-node:hover{box-shadow:0 2px 6px #0000001a,0 1px 3px #0000000d}.equip-node.compact{min-width:130px}.equip-header{color:var(--color-text,#111);letter-spacing:-.01em;align-items:center;gap:6px;padding:8px 10px 6px;font-family:inherit;font-size:14px;font-weight:600;line-height:1.3;display:flex}.equip-category-badge{letter-spacing:.04em;color:#fff;background:var(--cat-color,#94a3b8);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;min-width:22px;height:16px;padding:0 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:700;display:inline-flex}.equip-header.camera .equip-category-badge{background:#06b6d4}.equip-header.switcher .equip-category-badge{background:#ef4444}.equip-header.router .equip-category-badge{background:#f59e0b}.equip-header.monitor .equip-category-badge{background:#10b981}.equip-header.server .equip-category-badge,.equip-header.recorder .equip-category-badge{background:#3b82f6}.equip-header.graphics .equip-category-badge{background:#fbbf24}.equip-header.converter .equip-category-badge,.equip-header.frame-sync .equip-category-badge{background:#8b5cf6}.equip-header.encoder .equip-category-badge,.equip-header.decoder .equip-category-badge{background:#ec4899}.equip-header.multiviewer .equip-category-badge{background:#14b8a6}.equip-header.patch-panel .equip-category-badge,.equip-header.distribution-amp .equip-category-badge{background:#6b7280}.equip-header.audio-mixer .equip-category-badge,.equip-header.intercom .equip-category-badge{background:#6366f1}.equip-header.other .equip-category-badge{background:#94a3b8}.equip-node:has(.equip-header.camera){border-left-color:#06b6d4}.equip-node:has(.equip-header.switcher){border-left-color:#ef4444}.equip-node:has(.equip-header.router){border-left-color:#f59e0b}.equip-node:has(.equip-header.monitor){border-left-color:#10b981}:is(.equip-node:has(.equip-header.server),.equip-node:has(.equip-header.recorder)){border-left-color:#3b82f6}.equip-node:has(.equip-header.graphics){border-left-color:#fbbf24}:is(.equip-node:has(.equip-header.converter),.equip-node:has(.equip-header.frame-sync)){border-left-color:#8b5cf6}:is(.equip-node:has(.equip-header.encoder),.equip-node:has(.equip-header.decoder)){border-left-color:#ec4899}.equip-node:has(.equip-header.multiviewer){border-left-color:#14b8a6}:is(.equip-node:has(.equip-header.patch-panel),.equip-node:has(.equip-header.distribution-amp)){border-left-color:#6b7280}:is(.equip-node:has(.equip-header.audio-mixer),.equip-node:has(.equip-header.intercom)){border-left-color:#6366f1}.equip-node:has(.equip-header.ob-van){border-left-color:#f97316}.equip-node:has(.equip-header.drone){border-left-color:#0ea5e9}.equip-node:has(.equip-header.wireless){border-left-color:#a855f7}.equip-node:has(.equip-header.other){border-left-color:#94a3b8}.equip-header.camera svg{color:#06b6d4}.equip-header.switcher svg{color:#ef4444}.equip-header.router svg{color:#f59e0b}.equip-header.monitor svg{color:#10b981}.equip-header.server svg,.equip-header.recorder svg{color:#3b82f6}.equip-header.graphics svg{color:#fbbf24}.equip-header.converter svg,.equip-header.frame-sync svg{color:#8b5cf6}.equip-header.encoder svg,.equip-header.decoder svg{color:#ec4899}.equip-header.multiviewer svg{color:#14b8a6}.equip-header.patch-panel svg,.equip-header.distribution-amp svg{color:#6b7280}.equip-header.audio-mixer svg,.equip-header.intercom svg{color:#6366f1}.equip-header.ob-van svg{color:#f97316}.equip-header.drone svg{color:#0ea5e9}.equip-header.wireless svg{color:#a855f7}.equip-header.other svg{color:#94a3b8}.equip-node.equip-hub{min-width:200px;min-height:92px}.equip-node.equip-hub .equip-header{padding-top:var(--space-4,14px);justify-content:center;font-size:15px;font-weight:700}.equip-node.equip-hub .equip-header svg{width:20px;height:20px}.equip-body{justify-content:space-between;gap:var(--space-4,12px);border-top:1px solid #f3f4f6;margin-top:2px;padding:4px 10px 8px;display:flex}.port-column{gap:var(--space-1);flex-direction:column;display:flex}.port-item{font-variant-numeric:tabular-nums;color:#374151;height:var(--space-9);letter-spacing:.01em;align-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;display:flex;position:relative}.port-item.tiny{height:15px;font-size:9px}.port-item.out{justify-content:flex-end}.port-item span{border-radius:var(--radius-xs,3px);transition:all var(--t-slow,.16s);white-space:nowrap;background:#f9fafb;border:1px solid #0000;padding:1px 4px}.port-item:hover span{border-color:var(--color-accent,#2563eb);color:var(--color-accent,#2563eb);background:var(--color-accent-50,#eff6ff)}.edit-mode .port-item .signal-dot{display:none}.port-item.in-use span{background:var(--bg-selected,#dbeafe);border-color:var(--accent-200,#bfdbfe);font-weight:600}.equip-node:has(.equip-faceplate){width:max-content;max-width:none}.equip-faceplate{grid-auto-rows:var(--fp-cell,22px);gap:3px;width:max-content;padding:8px 10px 10px;display:grid}.fp-port{width:var(--fp-cell,22px);height:var(--fp-cell,22px);border-radius:var(--radius-xs,3px);background:#f8fafc;border:1px solid #cbd5e1;justify-content:center;align-items:center;display:flex;position:relative}.fp-port.in-use{background:var(--bg-selected,#dbeafe);border-color:var(--accent-200,#bfdbfe)}.fp-num{font-variant-numeric:tabular-nums;color:#475569;pointer-events:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;line-height:1}.fp-port.in-use .fp-num{color:#1d4ed8;font-weight:700}.react-flow__handle.fp-handle,.edit-mode .react-flow__handle.fp-handle{border-radius:var(--radius-xs,3px);min-width:0;min-height:0;box-shadow:none;background:0 0!important;border:none!important;width:100%!important;height:100%!important;position:absolute!important;inset:0!important;transform:none!important}.edit-mode .react-flow__handle.fp-handle:before{display:none}.edit-mode .react-flow__handle.fp-handle:hover{box-shadow:inset 0 0 0 2px #3b82f6;background:#3b82f638!important;width:100%!important;height:100%!important}.edit-mode .react-flow__node:hover .react-flow__handle.fp-handle{box-shadow:none;background:0 0!important;border-color:#0000!important}.edit-mode .react-flow__node:hover .react-flow__handle.fp-handle:hover{box-shadow:inset 0 0 0 2px #3b82f6;background:#3b82f638!important}.equip-port-usage{font-variant-numeric:tabular-nums;border-radius:var(--radius-full,999px);color:#475569;background:#ffffffa6;border:1px solid #0f172a1f;flex-shrink:0;margin-left:auto;padding:0 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px;line-height:14px}.react-flow__handle{width:var(--space-4);height:var(--space-4);transition:background-color var(--t-slow), transform var(--t-slow);background:#94a3b8;border:1.5px solid #fff}.react-flow__handle:hover{background:var(--color-accent);transform:scale(1.8);box-shadow:0 0 8px #3b82f699}@media (hover:none) and (pointer:coarse){.react-flow__handle{width:var(--space-7);height:var(--space-7)}}.react-flow__handle.connectingto,.react-flow__handle.connectingfrom{background:#10b981;box-shadow:0 0 10px #10b98199}.react-flow__handle.equip-fallback-handle{background:var(--color-text-muted);opacity:.35;width:var(--space-5);height:var(--space-5);position:relative}.react-flow__handle.equip-fallback-handle:hover{opacity:1}.edit-mode .react-flow__handle.equip-fallback-handle:before{content:"";width:var(--space-12);height:var(--space-12);border-radius:var(--radius-full);background:0 0;margin:-12px 0 0 -12px;position:absolute;top:50%;left:50%}@media (hover:none) and (pointer:coarse){.react-flow__handle.equip-fallback-handle{width:var(--space-7);height:var(--space-7);opacity:.55}.edit-mode .react-flow__handle.equip-fallback-handle:before{width:var(--space-16);height:var(--space-16);margin:-16px 0 0 -16px}}.nas-menu{z-index:var(--z-header);background:var(--bg-panel);width:320px;max-height:min(70dvh,480px);-webkit-backdrop-filter:blur(var(--blur-xl));backdrop-filter:blur(var(--blur-xl));border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-lg);gap:var(--space-4);flex-direction:column;display:flex;position:absolute;top:0;left:52px}.nas-menu-header{padding-bottom:var(--space-3);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.nas-menu-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.nas-menu-subtitle{font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all;padding:2px 0 4px}.nas-menu-close{color:var(--color-text-muted);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;display:flex}.nas-menu-close:hover,.nas-menu-close:focus-visible{color:var(--color-text);background:var(--bg-hover)}.nas-menu-search{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text-muted);display:flex}.nas-menu-search input{color:var(--color-text);font-size:var(--text-sm);background:0 0;border:none;outline:none;flex:1;min-width:0}.nas-menu-search input::placeholder{color:var(--color-text-muted)}.nas-menu-search-clear{color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-xs);background:0 0;border:none;align-items:center;display:flex}.nas-menu-search-clear:hover{color:var(--color-text);background:var(--bg-hover)}.nas-menu-list{gap:var(--space-2);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.nas-menu-empty{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-8) var(--space-4);text-align:center}.nas-menu-item-row{align-items:stretch;gap:var(--space-2);flex-wrap:wrap;display:flex}.nas-menu-item-row>.nas-menu-history-list{width:100%}.nas-menu-item-row>.nas-menu-item{flex:1;min-width:0}.nas-menu-item-delete{width:var(--space-16);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:background-color var(--t-base), color var(--t-base), border-color var(--t-base);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.nas-menu-item-delete:hover,.nas-menu-item-delete:focus-visible{background:color-mix(in srgb, var(--color-danger) 15%, transparent);border-color:var(--color-danger);color:var(--color-danger);outline:none}.nas-menu-item-delete:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.nas-menu-item-history{width:var(--space-16);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:background-color var(--t-base), color var(--t-base), border-color var(--t-base);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.nas-menu-item-history:hover,.nas-menu-item-history:focus-visible{background:color-mix(in srgb, var(--color-accent) 14%, transparent);border-color:var(--color-accent);color:var(--color-accent);outline:none}.nas-menu-history-list{gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-4);background:color-mix(in srgb, var(--color-accent) 6%, var(--bg-panel));border:1px solid var(--color-accent);border-radius:var(--radius-sm);flex-direction:column;max-height:200px;display:flex;overflow-y:auto}.nas-menu-history-empty{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;padding:var(--space-3)}.nas-menu-history-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-xs);cursor:pointer;text-align:left;display:flex}.nas-menu-history-row:hover,.nas-menu-history-row:focus-visible{border-color:var(--color-accent);outline:none}.nas-menu-history-time{flex:1}.nas-menu-history-size{color:var(--color-text-muted);font-size:var(--text-2xs)}.nas-menu-item{text-align:left;width:100%;padding:var(--space-4) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text);transition:background-color var(--t-base), border-color var(--t-base);background:0 0;display:block}.nas-menu-item:hover,.nas-menu-item:focus-visible{background:var(--bg-hover);border-color:var(--color-accent);outline:none}.nas-menu-item-name{font-size:var(--text-sm);font-weight:var(--weight-medium);margin-bottom:var(--space-2);word-break:keep-all;overflow-wrap:break-word}.nas-menu-item-desc{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2);word-break:keep-all;overflow-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.nas-menu-view-badge{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);font-size:var(--text-3xs);font-weight:var(--weight-semibold);border-radius:var(--radius-xs);margin-bottom:var(--space-2);word-break:keep-all;display:inline-flex}.nas-menu-view-badge.macro{background:color-mix(in srgb, var(--color-accent) 18%, transparent);color:var(--color-accent)}.nas-menu-view-badge.micro{color:var(--color-success);background:#10b9812e}.nas-menu-item-meta{gap:var(--space-2) var(--space-4);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.nas-menu-meta-chip{align-items:center;gap:var(--space-1);display:inline-flex}.nas-menu-meta-chip.muted{opacity:.7}@media (width<=640px){.nas-menu{width:min(92vw,360px);max-height:min(75dvh,520px);left:56px}.nas-menu-item{padding:var(--space-6) var(--space-6)}}.routing-matrix{border-collapse:collapse;width:100%;margin-top:var(--space-8);font-size:var(--text-base)}.routing-matrix th,.routing-matrix td{padding:var(--space-5);text-align:left;border-bottom:1px solid var(--border-default)}.routing-matrix th{color:var(--color-text-muted);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:.05em;font-size:var(--text-xs)}.routing-matrix tr:hover td{background:#ffffff05}.status-badge{padding:var(--space-2) var(--space-4);border-radius:var(--radius-2xl);color:var(--color-success);font-size:var(--text-xs);font-weight:var(--weight-semibold);background:#10b98133;display:inline-block}.skip-link{top:var(--space-2);left:var(--space-2);z-index:10000;padding:var(--space-2) var(--space-4);background:var(--color-accent);color:var(--color-text-on-accent);border-radius:var(--radius-sm);font-weight:var(--weight-semibold);transition:transform var(--dur-base) ease;text-decoration:none;position:absolute;transform:translateY(-200%)}.skip-link:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset);transform:translateY(0)}.app-route-main{display:contents}.app-header{height:var(--header-h);border-bottom:2px solid var(--color-accent);background:var(--bg-app);z-index:var(--z-header);align-items:center;padding:0 24px;display:flex}.app-header[data-mode=flow] .app-mode-tab-label,.app-header[data-mode=flow] .app-title>span{display:none}@media (width<=1300px){.app-header[data-mode=flow]{padding:0 var(--space-3);gap:var(--space-2)}.app-header[data-mode=flow] .header-install-btn,.app-header[data-mode=flow] .app-external-link,.app-header[data-mode=flow] .app-header-shortcuts-btn,.app-header[data-mode=flow] .user-menu-name,.app-header[data-mode=flow] .user-menu-chev{display:none}.app-header[data-mode=flow] .user-menu-trigger{padding:var(--space-2);gap:var(--space-2)}.app-header[data-mode=flow]>div:last-of-type{gap:var(--space-2)}}@media (width<=640px){.app-header[data-mode=flow] .search-trigger,.app-header[data-mode=flow] .user-menu-site-chip{display:none}.app-header[data-mode=flow] .user-menu-trigger{gap:0}.app-header[data-mode=flow] .app-title-btn{padding:var(--space-2);min-width:40px}.app-header[data-mode=flow] .app-title-btn img,.app-header[data-mode=flow] .app-title-btn svg{width:auto;max-height:24px}.app-header[data-mode=flow] .app-global-search-trigger{display:none}.app-header[data-mode=flow] .flow-mode-actions{gap:1px}}@media (width<=480px){.app-header[data-mode=flow] .notification-bell,.app-header[data-mode=flow] .user-menu{display:none}}.app-title{font-family:Pretendard Variable,Pretendard,Inter,sans-serif;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);align-items:center;gap:var(--space-4);white-space:nowrap;flex-shrink:0;display:flex}.app-title>span{white-space:nowrap}.app-title-btn{cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:background var(--t-base), opacity var(--t-base);background:0 0;border:none;margin-left:-6px}.app-title-btn:hover,.app-title-btn:focus-visible{background:var(--bg-hover)}.app-title-btn:active{opacity:.7}.app-header .btn{white-space:nowrap;flex-shrink:0}.layout-container{height:calc(100dvh - var(--header-h));display:flex}@supports not (height:100dvh){.layout-container{height:calc(100vh - var(--header-h))}}.sidebar{--color-text:#e2e8f0;--color-text-muted:#94a3b8;--border-default:#ffffff1a;--color-accent:#60a5fa;--color-success:#34d399;color:#e2e8f0;width:320px;transition:width var(--t-base), border-width var(--t-base);background:#0b0f19d9;border-right:1px solid #ffffff1a;flex-direction:column;display:flex;overflow:hidden}.sidebar.collapsed{border-right-width:0;width:0}.main-content{flex-direction:column;flex:1;display:flex;position:relative}.edit-mode .react-flow__edge:hover .react-flow__edgeupdater{fill:#60a5fa;stroke:#fff;stroke-width:2px;r:6}.edit-mode .react-flow__edge.selected .react-flow__edgeupdater{fill:#60a5fa;stroke:#fff;stroke-width:2px;r:7}.edit-mode .react-flow__edgeupdater:hover{fill:#3b82f6;r:8;filter:drop-shadow(0 0 4px #60a5facc)}@media (hover:none) and (pointer:coarse){.edit-mode .react-flow__edge.selected .react-flow__edgeupdater{r:9}}.validation-panel{z-index:6;background:var(--bg-panel);border-radius:var(--radius-md);max-width:320px;color:var(--color-text);font-size:var(--text-sm);box-shadow:var(--shadow-md);border:1px solid #f59e0b;position:absolute;top:50px;right:10px;overflow:hidden}.validation-header{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4) var(--space-5);cursor:pointer;color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);background:0 0;border:0;display:flex}.validation-header:hover{background:#f59e0b1a}.validation-icon{color:var(--color-important)}.validation-title{text-align:left;flex:1}.validation-panel.info-only{border-color:var(--border-default)}.validation-panel.info-only .validation-header:hover{background:var(--bg-hover-neutral)}.validation-panel.info-only .validation-icon{color:var(--color-text-muted)}.autosave-stamp{font-size:var(--text-xs);color:var(--color-text-muted);padding:0 var(--space-3);white-space:nowrap;align-self:center;align-items:center;gap:2px;display:inline-flex}.autosave-stamp-dot{color:#10b981;font-size:12px;line-height:1;display:none}.flow-mode-actions{align-items:center;gap:var(--space-2);display:inline-flex}.btn-dirty-dot{display:none}@media (width<=1300px){.flow-mode-actions .btn-label{display:none}.flow-mode-actions .btn{min-width:44px;min-height:44px;padding:0 var(--space-3)}.flow-mode-actions .btn-dirty-dot{color:#f59e0b;margin-left:-2px;font-size:18px;line-height:1;display:inline}.flow-mode-actions .autosave-stamp-label{display:none}}@media (width<=640px){.flow-mode-actions .autosave-stamp{padding:0 var(--space-2)}.flow-mode-actions .autosave-stamp-time{display:none}.flow-mode-actions .autosave-stamp-dot{display:inline}}.flow-mode-chip{align-items:center;gap:var(--space-2);padding:2px var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;-webkit-user-select:none;user-select:none;display:inline-flex}.flow-mode-chip.mode-view{background:var(--bg-hover-neutral);color:var(--color-text-muted);border:1px solid var(--border-default)}.flow-mode-chip.mode-edit{color:#f59e0b;background:#f59e0b2e;border:1px solid #f59e0b66}.flow-edit-hint-more{margin-top:var(--space-3);padding:var(--space-2) var(--space-4);border:1px dashed var(--border-default);border-radius:var(--radius-sm);width:100%;color:var(--color-text-muted);font-size:var(--text-xs);cursor:pointer;transition:background var(--t-base);background:0 0}.flow-edit-hint-more:hover,.flow-edit-hint-more:focus-visible{background:var(--bg-hover-neutral);color:var(--color-text);outline:none}.validation-body{padding:var(--space-2) var(--space-5) var(--space-5);border-top:1px solid #ffffff1a;max-height:50dvh;overflow-y:auto}.validation-section{margin-top:var(--space-4)}.validation-section-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:#fbbf24;margin-bottom:var(--space-2)}.validation-hint{font-weight:var(--weight-normal);color:var(--color-text-muted);font-size:var(--text-xs);margin-top:var(--space-1);display:block}.validation-list{font-size:var(--text-xs);color:var(--color-text-muted);margin:0;padding:0 0 0 8px;list-style:none}.validation-list li{text-overflow:ellipsis;white-space:nowrap;padding:2px 0;overflow:hidden}.validation-more{color:var(--color-text-muted);font-style:italic}.validation-fix-btn{align-items:center;gap:var(--space-2);margin-top:var(--space-5);padding:var(--space-2) var(--space-5);border-radius:var(--radius-sm);color:#1e293b;font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;background:#f59e0b;border:0;display:inline-flex}.validation-fix-btn:hover{background:#fbbf24}.node-search-backdrop{z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000059;justify-content:center;align-items:flex-start;padding-top:80px;display:flex;position:absolute;inset:0}.node-search-modal{background:var(--bg-panel);border:1px solid var(--color-accent);border-radius:var(--radius-lg);width:480px;max-width:calc(100vw - 32px);max-height:calc(100vh - 160px);color:var(--color-text);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.node-search-input-row{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid #ffffff1a;display:flex}.node-search-icon{color:var(--color-text-muted);flex-shrink:0}.node-search-input-row input{color:var(--color-text);font-size:var(--text-base);background:0 0;border:0;outline:none;flex:1}.node-search-close{width:var(--space-12);height:var(--space-12);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.node-search-close:hover{background:#ffffff1a;border-color:#fff3}.node-search-results{max-height:360px;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.node-search-item{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);cursor:pointer;border-left:2px solid #0000;display:flex}.node-search-item:hover,.node-search-item.active{border-left-color:var(--color-accent);background:#60a5fa26}.node-search-item-label{font-size:var(--text-sm);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.node-search-item-meta{align-items:center;gap:var(--space-3);flex-shrink:0;display:inline-flex}.node-search-item-reason,.node-search-item-type{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-1) var(--space-3);border-radius:var(--radius-xs);background:#ffffff0f}.node-search-empty{padding:var(--space-12);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.node-search-footer{padding:var(--space-4) var(--space-6);font-size:var(--text-xs);color:var(--color-text-muted);border-top:1px solid #ffffff1a}.node-search-footer kbd{border-radius:var(--radius-xs);font-family:inherit;font-size:var(--text-xs);background:#ffffff14;border:1px solid #ffffff26;margin:0 2px;padding:1px 5px;display:inline-block}.react-flow__node.searched>*{animation:.4s ease-in-out 4 search-pulse}@keyframes search-pulse{0%,to{box-shadow:0 0 #60a5fa99}50%{box-shadow:0 0 0 8px #60a5fa00}}.bom-status-filter{gap:var(--space-2);border-bottom:1px solid var(--border-default);margin-bottom:var(--space-4);flex-wrap:wrap;padding:0 0 8px;display:flex}.bom-status-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-2xl);color:var(--color-text-muted);font-size:var(--text-xs);cursor:pointer;transition:background var(--t-base), color var(--t-base);background:0 0;display:inline-flex}.bom-status-chip:hover,.bom-status-chip:focus-visible{color:var(--color-text);background:#ffffff14;outline:none}.bom-status-chip.active{color:var(--color-text);font-weight:var(--weight-semibold);background:#ffffff1f}.bom-status-dot{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-full);border:1px solid #00000040;flex-shrink:0;display:inline-block}.bom-status-count{font-variant-numeric:tabular-nums;opacity:.7;padding-left:var(--space-1)}.equip-status-dot{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-full);border:1px solid #00000026;flex-shrink:0;margin-left:auto;display:inline-block}.equip-node.status-broken{box-shadow:inset 0 0 0 1px #ef4444,0 1px 3px #ef444426}.equip-node.status-maintenance{box-shadow:inset 0 0 0 1px #f59e0b,0 1px 3px #f59e0b1f}.equip-node.status-reserved{opacity:.55;background:#fafafa}.react-flow.zoom-far .equip-subtitle,.react-flow.zoom-mid .equip-subtitle,.react-flow.zoom-far .equip-ip,.react-flow.zoom-mid .equip-ip,.react-flow.zoom-far .port-item span,.react-flow.zoom-mid .port-item span{display:none}.react-flow.zoom-far .port-item,.react-flow.zoom-mid .port-item{min-height:4px;padding:0}.react-flow.zoom-far .signal-dot,.react-flow.zoom-mid .signal-dot{width:var(--space-2);height:var(--space-2)}.react-flow.zoom-far .equip-body{display:none}.react-flow.zoom-far .equip-node{min-height:0;box-shadow:0 0 0 2px var(--color-accent)}.react-flow.zoom-far .equip-header{font-size:var(--text-md);padding:var(--space-3) var(--space-4)}.bulk-edit-panel{z-index:5;background:var(--bg-panel);border:1px solid var(--color-accent);border-radius:var(--radius-lg);width:320px;padding:var(--space-5) var(--space-6);gap:var(--space-4);color:var(--color-text);font-size:var(--text-sm);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute;bottom:56px;left:16px}.bulk-edit-header{justify-content:space-between;align-items:center;display:flex}.bulk-edit-title{font-weight:var(--weight-semibold);color:var(--color-accent)}.bulk-edit-close{width:var(--space-11);height:var(--space-11);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.bulk-edit-close:hover{background:#ffffff1a;border-color:#fff3}.bulk-edit-preview{font-size:var(--text-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-style:italic;overflow:hidden}.bulk-edit-row{align-items:center;gap:var(--space-3);display:flex}.bulk-edit-row.bulk-edit-replace{flex-wrap:wrap}.bulk-edit-label{width:72px;font-size:var(--text-xs);color:var(--color-text-muted);flex-shrink:0}.bulk-edit-row input,.bulk-edit-row select{min-width:0;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-sm);background:#0000004d;border:1px solid #ffffff26;flex:1}.bulk-edit-row input:focus-visible,.bulk-edit-row select:focus-visible{border-color:var(--color-accent);outline:none}.bulk-edit-row button{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-xs);cursor:pointer;white-space:nowrap;background:#ffffff0f;border:1px solid #ffffff26;display:inline-flex}.bulk-edit-row button:not(:disabled):hover{border-color:var(--color-accent);background:#ffffff1f}.bulk-edit-row button:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.bulk-edit-collapsed{z-index:5;padding:var(--space-3) var(--space-5);background:var(--bg-panel);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;position:absolute;bottom:56px;left:16px}.bulk-edit-collapsed:hover{background:#60a5fa26}.edge-bulk-panel{z-index:5;background:var(--bg-panel);border:1px solid var(--color-accent);border-radius:var(--radius-lg);width:260px;padding:var(--space-5) var(--space-6);gap:var(--space-4);color:var(--color-text);font-size:var(--text-sm);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute;bottom:56px;right:16px}.edge-bulk-header{justify-content:space-between;align-items:center;display:flex}.edge-bulk-title{font-weight:var(--weight-semibold);color:var(--color-accent);align-items:center;gap:var(--space-2);display:inline-flex}.edge-bulk-close{width:var(--space-11);height:var(--space-11);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.edge-bulk-close:hover{background:#ffffff1a;border-color:#fff3}.edge-bulk-row{align-items:center;gap:var(--space-3);display:flex}.edge-bulk-label{width:var(--space-20);font-size:var(--text-xs);color:var(--color-text-muted);flex-shrink:0}.edge-bulk-swatches{gap:var(--space-2);flex-wrap:wrap;flex:1;display:flex}.edge-bulk-swatch{width:var(--space-10);height:var(--space-10);border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--t-fast);border:1px solid #ffffff40;padding:0}.edge-bulk-swatch:hover{border-color:var(--color-text);transform:scale(1.15)}.edge-bulk-auto{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-xs);cursor:pointer;background:#ffffff0f;border:1px solid #fff3;display:inline-flex}.edge-bulk-auto:hover{border-color:var(--color-accent);background:#ffffff1f}.edge-bulk-row input[type=range]{flex:1;min-width:0}.edge-bulk-width-value{font-size:var(--text-xs);color:var(--color-text-muted);width:var(--space-18);text-align:right}.edge-bulk-collapsed{z-index:5;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--bg-panel);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;display:inline-flex;position:absolute;bottom:56px;right:16px}.edge-bulk-collapsed:hover{background:#60a5fa26}.flow-snap-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--t-base), color var(--t-base), border-color var(--t-base);display:inline-flex}.flow-snap-btn:hover,.flow-snap-btn:focus-visible{color:var(--color-text);background:#ffffff14;outline:none}.flow-snap-btn.active{color:var(--color-accent);border-color:var(--color-accent);background:#60a5fa26}.flow-snap-label{font-size:var(--text-xs)}@media (hover:none) and (pointer:coarse){.flow-snap-btn{padding:var(--space-4) var(--space-5)}}.flow-routing-group{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text);display:inline-flex}.flow-routing-label{font-size:var(--text-xs);color:var(--color-text-muted);padding:0 4px 0 2px}.flow-routing-btn{width:26px;height:26px;color:var(--color-text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--t-base), color var(--t-base), border-color var(--t-base);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.flow-routing-btn:hover,.flow-routing-btn:focus-visible{color:var(--color-text);background:#ffffff14;outline:none}.flow-routing-btn.active{color:var(--color-accent);border-color:var(--color-accent);background:#60a5fa26}@media (hover:none) and (pointer:coarse){.flow-routing-btn{width:var(--space-16);height:var(--space-16)}}.flow-align-group{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--bg-panel);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-text);display:inline-flex}.flow-align-count{font-size:var(--text-xs);color:var(--color-accent);font-weight:var(--weight-semibold);white-space:nowrap;padding:0 6px 0 2px}.flow-align-sep{width:1px;height:var(--space-8);background:#ffffff26;margin:0 2px;display:inline-block}.flow-align-btn{width:26px;height:26px;color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--t-base), border-color var(--t-base);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.flow-align-btn:hover,.flow-align-btn:focus-visible{background:#ffffff1a;border-color:#fff3;outline:none}@media (hover:none) and (pointer:coarse){.flow-align-btn{width:var(--space-16);height:var(--space-16)}}.diagram-sidebar-toggle{z-index:6;width:var(--space-16);height:var(--space-16);background:var(--bg-panel);color:var(--color-text);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:background var(--t-base), border-color var(--t-base);justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:10px;right:10px}.diagram-sidebar-toggle:hover,.diagram-sidebar-toggle:focus-visible{border-color:var(--color-accent);background:#ffffff1a;outline:none}.diagram-sidebar-toggle.collapsed{border-color:var(--color-accent);color:var(--color-accent)}@media (hover:none) and (pointer:coarse){.diagram-sidebar-toggle{width:var(--space-20);height:var(--space-20)}}.view-controls{z-index:5;gap:var(--space-4);flex-wrap:wrap;align-items:center;max-width:calc(100% - 32px);display:flex;position:absolute;top:16px;left:16px}.diagram-quick-switch{font-size:var(--text-sm);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-panel);color:var(--color-text);cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--color-text-muted) 50%), linear-gradient(135deg, var(--color-text-muted) 50%, transparent 50%);background-position:calc(100% - 14px),calc(100% - 9px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;max-width:240px;padding:4px 28px 4px 10px}.diagram-quick-switch:hover,.diagram-quick-switch:focus-visible{border-color:var(--color-accent);outline:none}.diagram-quick-switch optgroup{font-weight:var(--weight-semibold)}@media (hover:none) and (pointer:coarse){.diagram-quick-switch{padding:8px 28px 8px 10px}}.btn{background:var(--bg-panel);border:1px solid var(--border-default);color:var(--color-text);padding:var(--space-4) var(--space-8);border-radius:var(--radius-md);font-family:Pretendard Variable,Pretendard,Inter,sans-serif;font-size:var(--text-base);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--t-base), border-color var(--t-base), box-shadow var(--t-base), transform var(--t-base);align-items:center;gap:var(--space-4);display:flex}.btn:hover,.btn:focus-visible{background:var(--bg-hover);border-color:var(--color-text-muted)}.btn.active{border-color:var(--color-accent);color:#60a5fa;background:#3b82f633}.sidebar-tabs{gap:var(--space-1);margin-top:var(--space-4);display:flex}.sidebar-tab{border-radius:var(--radius-sm);color:var(--color-text-faint);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:all var(--t-base);background:#ffffff0d;border:1px solid #ffffff1a;flex:1;padding:6px 0}.sidebar-tab:hover,.sidebar-tab:focus-visible{background:#ffffff1a}.sidebar-tab.active{color:#60a5fa;background:#3b82f633;border-color:#3b82f6}.panel-header{padding:var(--space-8);font-weight:var(--weight-semibold);color:#f1f5f9;border-bottom:1px solid #ffffff1a;font-family:Outfit,sans-serif}.panel-content{padding:var(--space-8);flex:1;overflow-y:auto}.panel-empty{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.panel-section-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.panel-section-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.cable-row-num{font-size:var(--text-3xs);color:var(--color-text-muted)}.cable-row-type{font-size:var(--text-xs);color:var(--color-text-muted)}.bom-category-group{margin-bottom:var(--space-8)}.bom-category-title{font-size:var(--text-3xs);font-weight:var(--weight-semibold);color:var(--color-accent);margin-bottom:var(--space-3);text-transform:uppercase}.bom-equip-name{font-weight:var(--weight-medium)}.bom-cell-text{font-size:var(--text-xs)}.bom-cell-ports{font-size:var(--text-3xs);color:var(--color-text-muted)}.equip-subtitle{color:#6b7280;letter-spacing:.01em;padding:0 10px 4px;font-size:11px;font-weight:400}.equip-ip{font-family:var(--font-mono,ui-monospace, monospace);color:#4b5563;letter-spacing:.02em;padding:0 10px 4px;font-size:10px}.equip-pf{color:#6b7280;cursor:help}.signal-dot{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-full);flex-shrink:0;display:inline-block}.breadcrumb-separator{color:var(--color-text-muted);font-size:var(--text-base);padding:var(--space-4) var(--space-2)}.breadcrumb-current{color:var(--color-text);font-size:var(--text-base);font-weight:var(--weight-medium);padding:var(--space-4) var(--space-6);border-radius:var(--radius-md);background:#3b82f61a;border:1px solid #3b82f633}.macro-node-box.production{background:linear-gradient(145deg,#164e63,#0f172a);border-color:#06b6d4;box-shadow:0 0 16px #06b6d433}.macro-node-box.default{border-color:var(--color-text-muted);background:linear-gradient(145deg,#334155,#0f172a)}.react-flow__edge-text{font-size:var(--text-sm)!important;font-weight:var(--weight-semibold)!important;fill:#1e293b!important}.react-flow__edge-textbg{rx:4;ry:4;fill:#fff!important;fill-opacity:.92!important}.signal-legend{z-index:5;gap:var(--space-6);padding:var(--space-4) var(--space-6);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));display:flex;position:absolute;bottom:16px;left:16px}.legend-item{align-items:center;gap:var(--space-3);display:flex}.legend-dot{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-full)}.legend-label{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-medium)}.routing-cell{gap:var(--space-1);flex-direction:column;display:flex}.routing-cell .equip-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text)}.routing-cell .port-name{font-size:var(--text-3xs);color:var(--color-text-muted);opacity:.85}.signal-edge.backup .react-flow__edge-path{stroke-dasharray:8 4;opacity:.6}.group-node{border-radius:var(--radius-2xl,16px);padding:var(--space-4,14px);opacity:.85;pointer-events:none;background:#fff6;border:2px dashed;position:relative}.edit-mode .react-flow__node-groupNode{pointer-events:all!important}.edit-mode .react-flow__node-groupNode .group-node{pointer-events:all;cursor:move;opacity:1}.edit-mode .react-flow__node-groupNode.selected .group-node{border-style:solid;border-width:2px;box-shadow:0 0 0 2px #2563eb2e}.group-label{letter-spacing:.04em;pointer-events:none;background:#fff;border:1px solid;border-radius:4px;padding:1px 8px;font-size:13px;font-weight:700;position:absolute;top:6px;left:12px}.edit-mode .react-flow__node-groupNode .group-node .node-label-input{color:var(--color-text,#1e293b);border:1px solid var(--color-accent,#2563eb);background:#fff;border-radius:4px;max-width:240px;padding:1px 6px;font-size:13px;font-weight:700;position:absolute;top:4px;left:12px}.vda-node{border:1px solid var(--cyan-500,#06b6d4);transition:filter var(--t-slower), border-color var(--t-base), box-shadow var(--t-base);background:#fff;border-radius:6px;flex-direction:column;display:flex;position:relative;overflow:visible;box-shadow:0 1px 2px #00000014}.vda-node.dimmed{opacity:.35}.vda-node.highlighted{border-color:var(--color-accent,#2563eb);box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent) 30%, transparent)}.vda-node .vda-head{border-bottom:1px dashed color-mix(in srgb, var(--cyan-500) 35%, transparent);background:color-mix(in srgb, var(--cyan-500) 8%, #fff);align-items:center;gap:5px;height:28px;padding:0 8px;display:flex}.vda-node .vda-tri{flex:0 0 11px;display:block}.vda-node .vda-label{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:11px;font-weight:700;line-height:1;overflow:hidden}.vda-node.highlighted .vda-label{color:var(--color-accent,#2563eb)}.vda-node .vda-patch{color:#b45309;white-space:nowrap;pointer-events:none;letter-spacing:.04em;background:#fffbeb;border:1px solid #fcd34d;border-radius:3px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:600;position:absolute;top:-16px;left:50%;transform:translate(-50%)}.vda-node .vda-outs{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.vda-node .vda-out-row{border-top:1px solid #f1f5f9;justify-content:flex-end;align-items:center;padding:0 14px 0 8px;display:flex;position:relative}.vda-node .vda-out-row:first-child{border-top:0}.vda-node .vda-out-num{color:#334155;letter-spacing:0;text-align:center;background:#f1f5f9;border-radius:3px;min-width:14px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;font-weight:700;line-height:1}.vda-node.highlighted .vda-out-num{background:color-mix(in srgb, var(--color-accent) 18%, #fff);color:var(--color-accent)}.vda-node .react-flow__handle{width:var(--space-4);height:var(--space-4);background:#94a3b8;border:1.5px solid #fff}.edit-mode .vda-node .react-flow__handle,.vda-node .react-flow__handle.react-flow__handle{position:absolute!important}.vda-node .vda-out-row .react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vda-node .vda-head{position:relative}.vda-node .vda-in-handle.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__node.highlighted{z-index:10!important}.react-flow__node.highlighted-down .equip-node,.react-flow__node.highlighted-down .vda-node{border-color:var(--signal-down);box-shadow:0 0 20px color-mix(in srgb, var(--signal-down) 45%, transparent)}.react-flow__node.highlighted-up .equip-node,.react-flow__node.highlighted-up .vda-node{border-color:var(--signal-up);box-shadow:0 0 20px color-mix(in srgb, var(--signal-up) 45%, transparent)}.react-flow__node.highlighted-both .equip-node,.react-flow__node.highlighted-both .vda-node{border-color:var(--signal-both);box-shadow:0 0 20px color-mix(in srgb, var(--signal-both) 45%, transparent)}.react-flow__node.highlighted-start .equip-node,.react-flow__node.highlighted-start .vda-node{border-color:var(--signal-start-ring);box-shadow:0 0 24px color-mix(in srgb, var(--signal-start-ring) 55%, transparent), 0 0 8px color-mix(in srgb, var(--signal-down) 60%, transparent)}.react-flow__node.dimmed{opacity:.15;transition:opacity var(--t-slower)}.react-flow__node.dimmed:hover{opacity:.5}.react-flow__edge.highlighted .react-flow__edge-path{filter:drop-shadow(0 0 6px);stroke-width:4px!important}.react-flow__edge.highlighted-down .react-flow__edge-path{stroke:var(--signal-down)!important}.react-flow__edge.highlighted-up .react-flow__edge-path{stroke:var(--signal-up)!important}.react-flow__edge.highlighted-both .react-flow__edge-path{stroke:var(--signal-both)!important}.react-flow__edge.highlighted-down .react-flow__arrowhead{fill:var(--signal-down)}.react-flow__edge.highlighted-up .react-flow__arrowhead{fill:var(--signal-up)}.react-flow__edge.highlighted-both .react-flow__arrowhead{fill:var(--signal-both)}.react-flow__edge.highlighted-up .react-flow__edge-path{stroke-dasharray:6 4}.react-flow__edge.dimmed .react-flow__edge-path{opacity:.08}.signal-trace-panel{z-index:18;background:var(--bg-panel,#fff);border:1px solid var(--border-default,#e5e7eb);font-size:var(--text-xs,12px);font-weight:var(--weight-medium,500);color:var(--color-text,#111);border-radius:9999px;align-items:center;gap:12px;padding:6px 8px 6px 12px;display:inline-flex;position:absolute;top:12px;right:12px;box-shadow:0 4px 12px #00000014}.signal-trace-summary{align-items:baseline;gap:4px;display:inline-flex}.signal-trace-count{background:var(--color-accent,#2563eb);color:#fff;font-variant-numeric:tabular-nums;border-radius:9999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;display:inline-flex}.signal-trace-num{color:var(--color-text,#111);font-variant-numeric:tabular-nums;font-weight:600}.signal-trace-num small{color:var(--color-text-muted,#6b7280);margin-left:1px;font-size:10px;font-weight:400}.signal-trace-sep{color:var(--color-text-faint,#9ca3af);font-size:10px}.signal-trace-direction{background:var(--bg-app,#f9fafb);border:1px solid var(--border-default,#e5e7eb);border-radius:9999px;gap:0;padding:2px;display:inline-flex}.signal-trace-direction button{min-width:24px;color:var(--color-text-muted,#6b7280);cursor:pointer;font-size:12px;font-weight:var(--weight-medium,500);background:0 0;border:0;border-radius:9999px;padding:3px 8px;line-height:1;transition:background .12s,color .12s}.signal-trace-direction button:hover{background:var(--bg-hover-neutral,#f3f4f6);color:var(--color-text,#111)}.signal-trace-direction button.active{background:var(--bg-panel,#fff);color:var(--color-accent,#2563eb);box-shadow:0 1px 2px #00000014}.signal-trace-clear{width:22px;height:22px;color:var(--color-text-muted,#6b7280);font-size:11px;font-weight:var(--weight-medium,500);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9999px;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.signal-trace-clear:hover{background:var(--bg-hover-neutral,#f3f4f6);color:var(--color-text,#111);border-color:var(--color-text-muted,#6b7280)}.trace-hint{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-4) var(--space-6);opacity:.6;font-style:italic}.trace-controls{align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-5);background:color-mix(in srgb, var(--color-accent) 14%, var(--bg-panel));border:1px solid var(--color-accent);border-radius:var(--radius-md);display:flex}.trace-count{font-size:var(--text-xs);color:var(--color-accent);font-weight:var(--weight-semibold)}.trace-direction-group{border:1px solid var(--border-default);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.trace-dir-btn{width:var(--space-12);height:var(--space-11);border:none;border-right:1px solid var(--border-default);color:var(--color-text-muted);cursor:pointer;transition:background-color var(--t-base), color var(--t-base);background:0 0;justify-content:center;align-items:center;display:flex}.trace-dir-btn:last-child{border-right:none}.trace-dir-btn:hover,.trace-dir-btn:focus-visible{background:var(--bg-hover);color:var(--color-text);outline:none}.trace-dir-btn.active{background:var(--color-accent);color:#fff;width:auto;padding:0 var(--space-4);gap:var(--space-2)}.trace-dir-label{font-size:var(--text-2xs);font-weight:var(--weight-semibold)}.trace-legend{align-items:center;gap:var(--space-2);padding:0 var(--space-3);border-left:1px solid var(--border-default);margin-left:var(--space-1);display:inline-flex}.trace-legend-item{padding:2px var(--space-3);min-height:var(--space-9);border-radius:var(--radius-pill);font-size:var(--text-3xs);font-weight:var(--weight-bold);color:var(--signal-legend-text);letter-spacing:-.2px;white-space:nowrap;justify-content:center;align-items:center;display:inline-flex}.trace-legend-down{background:var(--signal-down)}.trace-legend-up{background:var(--signal-up)}.trace-legend-both{background:var(--signal-both)}.trace-endpoints{gap:var(--space-3);margin-left:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.trace-endpoint-group{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-pill);font-size:var(--text-xs);display:inline-flex}.trace-endpoint-group.endpoint-up{border-color:var(--signal-up)}.trace-endpoint-group.endpoint-down{border-color:var(--signal-down)}.trace-endpoint-label{font-weight:var(--weight-bold);color:var(--color-text)}.trace-endpoint-group.endpoint-up .trace-endpoint-label{color:var(--signal-up)}.trace-endpoint-group.endpoint-down .trace-endpoint-label{color:var(--signal-down)}.trace-endpoint-arrow{color:var(--color-text-muted);font-weight:var(--weight-bold)}.trace-endpoint-chip{background:color-mix(in srgb, var(--color-accent) 10%, transparent);padding:1px var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;max-width:14em;overflow:hidden}.trace-endpoint-more{font-size:var(--text-2xs);color:var(--color-text-muted);font-weight:var(--weight-semibold)}@media (width<=640px){.trace-endpoint-chip{max-width:8em}.trace-legend-item{padding:2px var(--space-4);font-size:var(--text-2xs)}}@media (hover:none) and (pointer:coarse){.trace-dir-btn{width:44px;height:44px}}.diagram-extras-section{gap:var(--space-10);flex-direction:column;display:flex}.diagram-extras-hint{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.diagram-extras-group{gap:var(--space-5);flex-direction:column;display:flex}.diagram-extras-group-header{justify-content:space-between;align-items:center;display:flex}.diagram-extras-group-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);align-items:center;gap:var(--space-3);margin:0;display:flex}.diagram-extras-empty{padding:var(--space-6);color:var(--color-text-muted);font-size:var(--text-sm);text-align:center;border:1px dashed var(--border-default);border-radius:var(--radius-sm)}.diagram-extras-list{gap:var(--space-4);flex-direction:column;display:flex}.diagram-extras-row{gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-sm);align-items:center;display:grid}.diagram-extras-row.zone{grid-template-columns:1.2fr 2fr 70px 100px 110px 36px}.diagram-extras-row.room{grid-template-columns:1.2fr 2fr 70px 2fr 36px}.diagram-extras-row .position-fields{gap:var(--space-2);display:flex}.diagram-extras-row .field{padding:var(--space-4) var(--space-5);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-sm);min-width:0;font-family:inherit}.diagram-extras-actions{gap:var(--space-4);align-items:center;display:flex}.diagram-extras-dirty{font-size:var(--text-xs);color:var(--color-text-muted)}@media (width<=640px){.diagram-extras-row.zone,.diagram-extras-row.room{row-gap:var(--space-3);grid-template-columns:1fr 36px}.diagram-extras-row .position-fields{grid-column:1/-1}}.diagram-extras-row.site{grid-template-columns:70px 1.4fr 1fr 90px 110px}.diagram-extras-row.site.hidden{opacity:.55}.diagram-extras-site-badge{font-size:var(--text-xs);border-radius:var(--radius-sm);text-align:center;white-space:nowrap;padding:2px 8px;font-weight:600}.diagram-extras-site-badge.builtin{background:var(--color-accent-50,#eff6ff);color:var(--color-accent-700,#1d4ed8);border:1px solid var(--color-accent-200,#bfdbfe)}.diagram-extras-site-badge.custom{background:var(--color-emerald-50,#ecfdf5);color:var(--color-emerald-700,#047857);border:1px solid var(--color-emerald-200,#a7f3d0)}.diagram-extras-site-label{color:var(--color-text);font-weight:600;font-size:var(--text-sm)}.diagram-extras-site-key{font-family:var(--font-mono,monospace);font-size:var(--text-xs);color:var(--color-text-muted)}.diagram-extras-site-count{font-size:var(--text-xs);color:var(--color-text-muted);text-align:right}@media (width<=640px){.diagram-extras-row.site{row-gap:var(--space-2);grid-template-columns:70px 1fr 36px}.diagram-extras-row.site .diagram-extras-site-key,.diagram-extras-row.site .diagram-extras-site-count{grid-column:1/-1}}.signal-compat-section{gap:var(--space-8);flex-direction:column;display:flex}.signal-compat-hint{color:var(--color-text-muted);font-size:var(--text-sm);margin:0}.signal-compat-list{gap:var(--space-5);flex-direction:column;display:flex}.signal-compat-group{gap:var(--space-4);padding:var(--space-5) var(--space-6);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-sm);flex-direction:column;display:flex}.signal-compat-group-header{align-items:center;gap:var(--space-3);display:flex}.signal-compat-group-header .field{padding:var(--space-4) var(--space-5);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-sm);flex:1;font-family:inherit}.signal-compat-chips{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.signal-compat-chip{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:color-mix(in srgb, var(--color-accent) 14%, transparent);border:1px solid var(--color-accent);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--color-text);font-family:Fira Code,monospace;display:inline-flex}.signal-compat-chip button{width:var(--space-9);height:var(--space-9);border-radius:var(--radius-full);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.signal-compat-chip button:hover:not(:disabled),.signal-compat-chip button:focus-visible:not(:disabled){background:var(--bg-app);color:var(--color-text)}.signal-compat-chip button:disabled{opacity:.3;cursor:not-allowed}.signal-compat-add{min-width:130px;padding:var(--space-4) var(--space-5);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-sm);font-family:inherit}.signal-compat-actions{gap:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.signal-compat-dirty{font-size:var(--text-xs);color:var(--color-text-muted)}.signals-admin-section{gap:var(--space-8);flex-direction:column;display:flex}.signals-admin-hint{color:var(--color-text-muted);font-size:var(--text-sm);margin:0;line-height:1.55}.signals-admin-hint strong{color:var(--color-text);font-weight:600}.custom-signals-block{border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-md,8px);padding:var(--space-5,10px) var(--space-6,12px);margin-bottom:var(--space-6,12px);background:var(--bg-panel,#f8fafc)}.custom-signals-list{margin:var(--space-4,8px) 0;gap:var(--space-2,4px);flex-direction:column;padding:0;list-style:none;display:flex}.custom-signals-row{align-items:center;gap:var(--space-4,8px);padding:var(--space-2,4px) var(--space-3,6px);background:var(--bg-app,#fff);border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-sm,6px);display:flex}.custom-signals-row .signals-admin-row-name{flex:1}.custom-signals-color{border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-xs,4px);cursor:pointer;background:0 0;flex-shrink:0;width:30px;height:24px;padding:0}.custom-signals-bidir{align-items:center;gap:var(--space-2,4px);font-size:var(--text-xs,12px);color:var(--color-text-muted,#6b7280);cursor:pointer;white-space:nowrap;display:inline-flex}.custom-signals-add{align-items:center;gap:var(--space-3,6px);margin-top:var(--space-4,8px);flex-wrap:wrap;display:flex}.custom-signals-add input[type=text]{min-width:180px;font-size:var(--text-sm,13px);border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-sm,6px);flex:1;padding:6px 8px}.signals-admin-favbar{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);background:color-mix(in srgb, var(--color-accent) 8%, var(--bg-panel));border:1px solid color-mix(in srgb, var(--color-accent) 30%, var(--border-default));border-radius:var(--radius-sm);flex-wrap:wrap;display:flex}.signals-admin-favbar-title{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);font-weight:600;display:inline-flex}.signals-admin-seed-chip{margin-left:var(--space-3);padding:2px var(--space-3);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--color-text-muted);font-weight:500}.signals-admin-fav-chips{gap:var(--space-2);flex-wrap:wrap;flex:1;min-width:0;display:flex}.signals-admin-fav-empty{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.signals-admin-fav-chip{align-items:center;gap:var(--space-2);padding:2px var(--space-3);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--color-text);font-family:Fira Code,monospace;display:inline-flex}.signals-admin-fav-dot{border-radius:50%;flex:0 0 8px;width:8px;height:8px}.signals-admin-groups{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.signals-admin-group{gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-sm);flex-direction:column;display:flex}.signals-admin-group-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-default);display:flex}.signals-admin-group-label{font-size:var(--text-sm);color:var(--color-text);font-weight:600}.signals-admin-group-count{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.signals-admin-row-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.signals-admin-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);grid-template-columns:10px 1fr auto auto;transition:background .12s;display:grid}.signals-admin-row:hover{background:var(--bg-app)}.signals-admin-row.is-hidden{opacity:.45}.signals-admin-row.is-hidden .signals-admin-row-name{text-decoration:line-through}.signals-admin-row-dot{border-radius:50%;width:10px;height:10px}.signals-admin-row-name{font-size:var(--text-sm);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-family:Fira Code,monospace;overflow:hidden}.signals-admin-fav-btn,.signals-admin-hide-btn{border-radius:var(--radius-xs);width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.signals-admin-fav-btn:hover:not(:disabled),.signals-admin-hide-btn:hover:not(:disabled){background:var(--bg-app);color:var(--color-text);border-color:var(--border-default)}.signals-admin-fav-btn:disabled{opacity:.3;cursor:not-allowed}.signals-admin-fav-btn.is-on{color:#f59e0b;background:#f59e0b1f;border-color:#f59e0b66}.signals-admin-hide-btn.is-on{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent);border-color:color-mix(in srgb, var(--color-danger) 35%, transparent)}.signals-admin-actions{gap:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.signals-admin-dirty{font-size:var(--text-xs);color:var(--color-amber-500,#f59e0b);font-weight:500}.signals-admin-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.blueprint-container{background:var(--bg-app);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:relative;overflow:hidden}.blueprint-canvas{transition:none;display:inline-block;position:relative}.blueprint-image{-webkit-user-select:none;user-select:none;pointer-events:none;max-width:none;display:block}.blueprint-empty{justify-content:center;align-items:center;gap:var(--space-4);width:600px;height:400px;color:var(--color-text-muted);border:2px dashed var(--border-default);border-radius:var(--radius-2xl);flex-direction:column;display:flex}.blueprint-empty p{font-size:var(--text-md);color:var(--color-text);margin:0}.blueprint-empty small{font-size:var(--text-xs);text-align:center;max-width:360px}.blueprint-upload-btn{align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-4) var(--space-8);background:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-text-on-accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:filter var(--t-base);display:inline-flex}.blueprint-upload-btn:hover:not(:disabled),.blueprint-upload-btn:focus-visible{filter:brightness(1.1);outline:2px solid var(--color-accent);outline-offset:2px}.blueprint-upload-btn:disabled{opacity:.55;cursor:default}.blueprint-equip-panel{z-index:10;background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:232px;max-height:62%;-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));flex-direction:column;display:flex;position:absolute;top:16px;right:16px;overflow:hidden}.blueprint-equip-panel-head{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4) var(--space-2) var(--space-2);border-bottom:1px solid var(--border-default);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);display:flex}.blueprint-equip-collapse{width:var(--space-9);height:var(--space-9);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;display:flex}.blueprint-equip-collapse:hover,.blueprint-equip-collapse:focus-visible{color:var(--color-text);background:#ffffff14}.blueprint-equip-count{font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--color-text-muted);margin-left:auto}.blueprint-equip-empty{padding:var(--space-4);font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.5}.blueprint-equip-list{padding:var(--space-2);gap:var(--space-1);flex-direction:column;margin:0;list-style:none;display:flex;overflow-y:auto}.blueprint-equip-row{align-items:stretch;gap:var(--space-1);border-radius:var(--radius-sm);display:flex}.blueprint-equip-row.selected{background:color-mix(in srgb, var(--color-accent) 16%, transparent)}.blueprint-equip-main{align-items:center;gap:var(--space-2);min-width:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:none;flex:1;display:flex}.blueprint-equip-main:hover,.blueprint-equip-main:focus-visible{background:#ffffff0f}.blueprint-equip-dot{border:1px solid var(--border-strong);border-radius:50%;flex:none;width:8px;height:8px}.blueprint-equip-dot.on{background:var(--color-accent);border-color:var(--color-accent)}.blueprint-equip-name{min-width:0;font-size:var(--text-xs);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.blueprint-equip-tag{font-size:var(--text-2xs);color:var(--color-text-muted);flex:none}.blueprint-equip-row.placed .blueprint-equip-tag{color:var(--color-accent)}.blueprint-equip-del{width:var(--space-12);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;display:flex}.blueprint-equip-del:hover,.blueprint-equip-del:focus-visible{background:color-mix(in srgb, var(--color-danger) 18%, transparent);color:var(--color-danger)}@media (width<=1024px){.blueprint-equip-panel{width:188px;max-height:50%}}.node-label-input{min-width:40px;max-width:200px;font:inherit;color:var(--color-text-on-accent);border:1px solid var(--color-accent);border-radius:var(--radius-xs);background:#00000061;outline:none;flex:1;padding:1px 5px}.node-label-input:focus{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent) 40%, transparent)}.blueprint-hotspot{border-radius:var(--radius-md);cursor:pointer;transition:all var(--t-slow);border:2px solid #0000;justify-content:center;align-items:flex-end;display:flex;position:absolute}.blueprint-hotspot:hover,.blueprint-hotspot:focus-visible,.blueprint-hotspot.hovered{border-color:var(--color-accent);background:#3b82f61a;box-shadow:0 0 12px #3b82f64d}.blueprint-hotspot.selected{border-color:var(--color-accent);background:#3b82f626;box-shadow:0 0 20px #3b82f666}.hotspot-label{font-size:clamp(11px,1.1vw,14px);font-weight:var(--weight-semibold);color:#0000;padding:var(--space-1) var(--space-3);border-radius:var(--radius-xs);white-space:nowrap;transition:color var(--t-slow);pointer-events:none;margin-bottom:var(--space-1);background:#000000b3}@media (width<=1024px){.hotspot-label{font-size:var(--text-base);padding:var(--space-1) var(--space-4)}}.blueprint-hotspot:hover .hotspot-label,.blueprint-hotspot.hovered .hotspot-label,.blueprint-hotspot.selected .hotspot-label{color:var(--color-accent)}.blueprint-zoom-controls{z-index:10;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));display:flex;position:absolute;bottom:16px;left:16px}.blueprint-zoom-controls button{border:1px solid var(--border-default);color:var(--color-text);width:var(--space-14);height:var(--space-14);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-md);font-weight:var(--weight-semibold);transition:background var(--t-slow);background:#ffffff1a;justify-content:center;align-items:center;display:flex}@media (hover:none) and (pointer:coarse){.blueprint-zoom-controls button{width:var(--space-18);height:var(--space-18)}}.blueprint-zoom-controls button:hover,.blueprint-zoom-controls button:focus-visible{background:#fff3}.blueprint-zoom-controls span{font-size:var(--text-xs);color:var(--color-text-muted);min-width:var(--space-20);text-align:center}.blueprint-hotspot.editable{cursor:move;border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, transparent)}.blueprint-hotspot.editable:hover{background:color-mix(in srgb, var(--color-accent) 22%, transparent)}.blueprint-zoom-controls .blueprint-hotspot-export.dirty{background:var(--color-warning);color:#fff;border-color:var(--color-warning);animation:1.6s ease-in-out infinite hotspot-export-pulse}@keyframes hotspot-export-pulse{0%,to{opacity:1}50%{opacity:.7}}.blueprint-hotspot-sync{align-items:center;gap:var(--space-2);padding:2px var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-2xs);font-weight:var(--weight-semibold);display:inline-flex}.blueprint-hotspot-sync.sync-saving{background:color-mix(in srgb, var(--color-accent) 18%, transparent);color:var(--color-accent)}.blueprint-hotspot-sync.sync-saved{background:color-mix(in srgb, var(--color-success) 22%, transparent);color:var(--color-success)}.blueprint-hotspot-sync.sync-error{background:color-mix(in srgb, var(--color-danger) 22%, transparent);color:var(--color-danger)}.equipment-detail{padding:var(--space-8);flex:1;overflow-y:auto}.detail-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.detail-header h3{font-family:Outfit,sans-serif;font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text)}.detail-category{font-size:var(--text-3xs);padding:var(--space-1) var(--space-4);border-radius:var(--radius-xl);color:#60a5fa;font-weight:var(--weight-semibold);text-transform:uppercase;background:#3b82f633}.detail-meta{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-8);opacity:.7}.detail-section{margin-bottom:var(--space-8)}.detail-section h4{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--space-4);font-weight:var(--weight-medium)}.port-list{gap:var(--space-2);flex-direction:column;display:flex}.port-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-xs);transition:background var(--t-base);display:flex}.port-row:hover{background:#ffffff08}.port-name-detail{color:var(--color-text);font-weight:var(--weight-medium);min-width:80px}.port-signal{color:var(--color-text-muted);font-size:var(--text-3xs);min-width:50px}.port-connected{color:#60a5fa;font-size:var(--text-3xs);margin-left:auto}.detail-stats{gap:var(--space-8);font-size:var(--text-sm);color:var(--color-text-muted);display:flex}::-webkit-scrollbar{width:var(--space-3);height:var(--space-3)}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-sm);background:#ffffff1a}::-webkit-scrollbar-thumb:hover{background:#fff3}.btn-edit-active{color:#60a5fa!important;background:#3b82f64d!important;border-color:#3b82f6!important}.btn-save-dirty{color:#fbbf24!important;background:#f59e0b40!important;border-color:#f59e0b!important}.btn-save-dirty:hover{background:#f59e0b59!important}.edit-status{align-items:center;gap:var(--space-3);margin-left:auto;display:flex}.edit-badge{color:#60a5fa;font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-4);border-radius:var(--radius-sm);letter-spacing:.5px;background:#3b82f633;border:1px solid #3b82f64d}.edit-mode .react-flow__handle{box-shadow:0 0 0 1px #0f172a4d;width:var(--space-5)!important;height:var(--space-5)!important;opacity:1!important;border:2px solid #fff!important;position:relative!important}.edit-mode .react-flow__handle:before{content:"";width:var(--space-12);height:var(--space-12);border-radius:var(--radius-full);background:0 0;margin:-12px 0 0 -12px;position:absolute;top:50%;left:50%}.edit-mode .react-flow__handle:hover{box-shadow:0 0 10px #3b82f6b3;width:var(--space-8)!important;height:var(--space-8)!important;background:#3b82f6!important}.edit-mode .react-flow__node:hover .react-flow__handle{box-shadow:0 0 6px #3b82f673;background:#3b82f6!important;border-color:#fff!important}.edit-mode .react-flow__node:hover .react-flow__handle.equip-fallback-handle{opacity:.85}@media (hover:none) and (pointer:coarse){.edit-mode .react-flow__handle{width:var(--space-7)!important;height:var(--space-7)!important}.edit-mode .react-flow__handle:before{width:var(--space-16);height:var(--space-16);margin:-16px 0 0 -16px}}.edit-mode .react-flow__node.selected .equip-node,.edit-mode .react-flow__node.selected .vda-node{outline:2px solid var(--color-accent,#2563eb);outline-offset:2px;box-shadow:0 4px 14px #2563eb2e}.property-panel-placeholder{padding:var(--space-6)}.prop-group{margin-bottom:var(--space-6)}.prop-group label{font-size:var(--text-3xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2);display:block}.prop-value{font-size:var(--text-base);color:var(--color-text);font-family:Fira Code,monospace}.prop-hint{color:var(--color-text-muted);font-size:var(--text-xs);margin-top:var(--space-10);font-style:italic}.editor-toolbar{width:var(--space-24);background:var(--bg-panel);-webkit-backdrop-filter:blur(var(--blur-lg));backdrop-filter:blur(var(--blur-lg));border-right:1px solid var(--border-default);align-items:center;gap:var(--space-2);z-index:var(--z-header);flex-direction:column;padding:8px 0;display:flex;position:fixed;top:56px;bottom:0;left:0}@media (hover:none) and (pointer:coarse){.editor-toolbar{width:56px}.layout-container:has(.editor-toolbar) .main-content{margin-left:56px}}.toolbar-btn{width:var(--space-18);height:var(--space-18);color:var(--color-text-muted);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--t-base);background:0 0;border:none;justify-content:center;align-items:center;display:flex}@media (hover:none) and (pointer:coarse),(width<=640px){.toolbar-btn{width:44px;height:44px}}.toolbar-btn:hover,.toolbar-btn:focus-visible{color:var(--color-text);background:#ffffff14}.toolbar-btn.active{color:#60a5fa;background:#3b82f633}.toolbar-divider{width:var(--space-12);background:var(--border-default);height:1px;margin:4px 0}.equipment-palette{background:var(--bg-panel);width:200px;max-height:calc(100dvh - 70px);-webkit-backdrop-filter:blur(var(--blur-xl));backdrop-filter:blur(var(--blur-xl));border:1px solid var(--border-default);z-index:101;scrollbar-width:none;border-radius:0 8px 8px 0;position:fixed;top:56px;left:52px;overflow-y:auto}.equipment-palette::-webkit-scrollbar{display:none;box-shadow:4px 0 20px #0000004d}.palette-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);justify-content:space-between;align-items:center;display:flex}.palette-close{color:var(--color-text-muted);cursor:pointer;font-size:var(--text-xl);background:0 0;border:none;padding:0 4px}.palette-close:hover,.palette-close:focus-visible{color:var(--color-text)}.palette-header-actions{align-items:center;gap:6px;display:inline-flex}.palette-new-btn{border:1px solid var(--color-accent,#2563eb);border-radius:var(--radius-sm,6px);background:var(--color-accent,#2563eb);color:var(--color-text-on-accent,#fff);font-size:var(--text-xs,12px);font-weight:var(--weight-semibold,600);cursor:pointer;align-items:center;gap:3px;padding:4px 8px;display:inline-flex}.palette-new-btn:hover{filter:brightness(1.05)}.palette-new-btn:focus-visible{outline:2px solid var(--color-accent,#2563eb);outline-offset:1px}.palette-pending-badge{color:#92400e;font-size:var(--text-xs,11px);font-weight:var(--weight-semibold,600);cursor:pointer;background:#fef3c7;border:1px solid #f59e0b;border-radius:9999px;align-items:center;gap:5px;padding:4px 9px 4px 8px;transition:background .12s;display:inline-flex}.palette-pending-badge:hover{background:#fde68a}.palette-pending-badge:focus-visible{outline-offset:1px;outline:2px solid #f59e0b}.palette-pending-dot{background:#f59e0b;border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite palette-pending-pulse}@keyframes palette-pending-pulse{0%,to{box-shadow:0 0 #f59e0b80}50%{box-shadow:0 0 0 5px #f59e0b00}}@media (prefers-reduced-motion:reduce){.palette-pending-dot{animation:none}}.palette-restore-btn{border-radius:var(--radius-sm,6px);color:#475569;font-size:var(--text-xs,11px);font-weight:var(--weight-semibold,600);cursor:pointer;background:#f1f5f9;border:1px solid #94a3b8;align-items:center;gap:3px;padding:4px 8px;transition:background .12s;display:inline-flex}.palette-restore-btn:hover{background:#e2e8f0}.palette-restore-btn:focus-visible{outline-offset:1px;outline:2px solid #64748b}.equipment-pending-modal{width:92vw;max-width:640px}.equipment-pending-count{background:var(--color-accent,#2563eb);color:#fff;vertical-align:middle;border-radius:9999px;justify-content:center;align-items:center;min-width:22px;height:22px;margin-left:8px;padding:0 7px;font-size:11px;font-weight:700;display:inline-flex}.equipment-pending-empty{padding:var(--space-12) var(--space-8);text-align:center;color:var(--color-text-muted,#6b7280);font-size:var(--text-sm,13px);line-height:1.6}.equipment-pending-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.equipment-pending-item{border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-md,8px);background:var(--bg-panel,#fff);align-items:center;gap:12px;padding:12px 14px;display:flex}.equipment-pending-main{flex:1;min-width:0}.equipment-pending-label{flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:4px;display:flex}.equipment-pending-name{font-size:var(--text-sm,14px);color:var(--color-text,#111);font-weight:600}.equipment-pending-en{font-size:var(--text-xs,12px);color:var(--color-text-muted,#6b7280)}.equipment-pending-cat{background:var(--bg-app,#f3f4f6);color:var(--color-text-muted,#6b7280);border-radius:4px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:10px}.equipment-pending-meta{color:var(--color-text-muted,#6b7280);font-size:var(--text-xs,11px);flex-wrap:wrap;gap:10px;display:flex}.equipment-pending-meta-row{align-items:center;gap:3px;display:inline-flex}.equipment-pending-actions{flex:none;gap:6px;display:flex}.equipment-pending-approve,.equipment-pending-reject{border-radius:var(--radius-sm,6px);font-size:var(--text-xs,12px);cursor:pointer;align-items:center;gap:4px;padding:6px 12px;font-weight:600;display:inline-flex}.equipment-pending-approve{color:#fff;background:#10b981;border:1px solid #059669}.equipment-pending-approve:hover{background:#059669}.equipment-pending-reject{background:var(--bg-panel,#fff);color:var(--color-danger,#dc2626);border:1px solid var(--color-danger,#dc2626)}.equipment-pending-reject:hover{background:#fef2f2}.palette-body{padding:var(--space-4)}.palette-group{margin-bottom:var(--space-6)}.palette-group-title{font-size:var(--text-3xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;padding:var(--space-2) var(--space-4);margin-bottom:var(--space-1)}.palette-item{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:grab;font-size:var(--text-sm);color:var(--color-text);transition:background var(--t-base);-webkit-user-select:none;user-select:none;display:flex}.palette-item:hover,.palette-item:focus-visible{background:#ffffff14}.palette-item:active{cursor:grabbing;background:#3b82f626}.palette-item>span{flex:auto;min-width:0}.palette-item .palette-item-action{width:22px;height:22px;margin-left:var(--space-1);border-radius:var(--radius-xs);color:var(--color-text-muted);cursor:pointer;opacity:0;pointer-events:none;transition:opacity var(--t-base), background var(--t-base), color var(--t-base), border-color var(--t-base);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.palette-item:hover .palette-item-action,.palette-item:focus-within .palette-item-action{opacity:1;pointer-events:auto}.palette-item .palette-item-action.star.active{opacity:1;pointer-events:auto;color:#f59e0b}.palette-item .palette-item-action.star.active svg{fill:#f59e0b}.palette-item .palette-item-action:hover,.palette-item .palette-item-action:focus-visible{background:var(--bg-app);color:var(--color-text);border-color:var(--border-default);opacity:1}.palette-item .palette-item-action.danger:hover,.palette-item .palette-item-action.danger:focus-visible{color:var(--color-danger);border-color:color-mix(in srgb, var(--color-danger) 40%, transparent);background:color-mix(in srgb, var(--color-danger) 10%, transparent)}@media (hover:none){.palette-item .palette-item-action{opacity:.7}}.context-menu .context-menu-header{padding:var(--space-3) var(--space-4) var(--space-2);font-size:var(--text-2xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-default);margin-bottom:var(--space-1);flex-direction:column;gap:2px;display:flex}.context-menu .context-menu-header span{text-transform:none;letter-spacing:0;color:var(--color-text);font-weight:600;font-size:var(--text-sm)}.palette-search{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-default);color:var(--color-text-muted);display:flex}.palette-search input{color:var(--color-text);font-size:var(--text-sm);background:0 0;border:none;outline:none;flex:1}.palette-search input::placeholder{color:var(--color-text-muted)}.palette-search-clear{color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-xs);background:0 0;border:none;align-items:center;display:flex}.palette-search-clear:hover,.palette-search-clear:focus-visible{color:var(--color-text);background:var(--bg-hover)}.palette-group-title.clickable{align-items:center;gap:var(--space-2);cursor:pointer;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);transition:background var(--t-base);display:flex}.palette-group-title.clickable:hover,.palette-group-title.clickable:focus-visible{background:var(--bg-hover)}.group-toggle{color:var(--color-text-muted);align-items:center;display:flex}.group-count{font-size:var(--text-3xs);color:var(--color-text-muted);background:var(--border-default);border-radius:var(--radius-lg);min-width:var(--space-9);text-align:center;margin-left:auto;padding:0 6px}.custom-group{border-bottom:1px solid var(--border-default);padding-bottom:var(--space-4);margin-bottom:var(--space-4)}.custom-group .palette-group-title{color:var(--color-accent);font-weight:var(--weight-semibold)}.custom-item{position:relative}.custom-badge{font-size:var(--text-3xs);color:var(--color-accent);background:var(--accent-glow-mid);border-radius:var(--radius-sm);font-weight:var(--weight-medium);align-items:center;gap:3px;margin-left:auto;padding:1px 5px;display:inline-flex}.custom-badge.shared{color:#047857;background:#d1fae5}.palette-item.shared-item{padding-left:calc(var(--space-4,12px) - 3px);border-left:3px solid #10b981}.palette-empty,.palette-empty-all{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-4) var(--space-6);text-align:center}.palette-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-default);font-size:var(--text-3xs);color:var(--color-text-muted);text-align:center}.context-menu-divider{background:var(--border-default);height:1px;margin:4px 0}@keyframes modal-overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-content-rise-in{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes modal-overlay-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-content-rise-out{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.96)translateY(4px)}}.modal-overlay{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:300;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));justify-content:center;align-items:center;animation:.18s ease-out modal-overlay-fade-in;display:flex;position:fixed;inset:0}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.modal-overlay{-webkit-backdrop-filter:blur(var(--modal-blur));backdrop-filter:blur(var(--modal-blur))}}.modal-content{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-2xl);width:min(440px,100%);max-height:var(--modal-max-h);box-shadow:var(--shadow-xl);flex-direction:column;animation:.24s cubic-bezier(.16,1,.3,1) modal-content-rise-in;display:flex}@media (prefers-reduced-motion:reduce){.modal-overlay,.modal-content{animation:none}}.file-browser-modal-backdrop,.gcal-conn-backdrop,.doc-preview-modal-backdrop,.dr-upload-backdrop,.dr-fallback-backdrop,.os-modal-backdrop,.quotes-modal-backdrop,.node-search-backdrop,.ms-compose-backdrop,.kbd-modal-backdrop,.ui-modal-backdrop,.home-cell-peek-backdrop,.onboarding-backdrop{animation:.18s ease-out modal-overlay-fade-in}.file-browser-modal,.gcal-conn-modal,.doc-preview-modal,.dr-upload-modal,.dr-fallback-modal,.os-modal,.quotes-modal,.node-search-modal,.ms-compose-modal,.kbd-modal,.ui-modal,.home-cell-peek,.onboarding-card{animation:.24s cubic-bezier(.16,1,.3,1) modal-content-rise-in}@media (prefers-reduced-motion:reduce){.file-browser-modal-backdrop,.gcal-conn-backdrop,.doc-preview-modal-backdrop,.dr-upload-backdrop,.dr-fallback-backdrop,.os-modal-backdrop,.quotes-modal-backdrop,.node-search-backdrop,.ms-compose-backdrop,.kbd-modal-backdrop,.ui-modal-backdrop,.home-cell-peek-backdrop,.onboarding-backdrop,.file-browser-modal,.gcal-conn-modal,.doc-preview-modal,.dr-upload-modal,.dr-fallback-modal,.os-modal,.quotes-modal,.node-search-modal,.ms-compose-modal,.kbd-modal,.ui-modal,.home-cell-peek,.onboarding-card{animation:none}}.file-browser-modal-backdrop.exiting,.gcal-conn-backdrop.exiting,.doc-preview-modal-backdrop.exiting,.dr-upload-backdrop.exiting,.dr-fallback-backdrop.exiting,.os-modal-backdrop.exiting,.quotes-modal-backdrop.exiting,.node-search-backdrop.exiting,.ms-compose-backdrop.exiting,.kbd-modal-backdrop.exiting,.ui-modal-backdrop.exiting,.home-cell-peek-backdrop.exiting,.onboarding-backdrop.exiting,.modal-overlay.exiting{pointer-events:none;animation:.2s ease-out forwards modal-overlay-fade-out}.file-browser-modal.exiting,.gcal-conn-modal.exiting,.doc-preview-modal.exiting,.dr-upload-modal.exiting,.dr-fallback-modal.exiting,.os-modal.exiting,.quotes-modal.exiting,.node-search-modal.exiting,.ms-compose-modal.exiting,.kbd-modal.exiting,.ui-modal.exiting,.home-cell-peek.exiting,.onboarding-card.exiting,.modal-content.exiting{animation:.2s ease-out forwards modal-content-rise-out}@media (prefers-reduced-motion:reduce){.file-browser-modal-backdrop.exiting,.gcal-conn-backdrop.exiting,.doc-preview-modal-backdrop.exiting,.dr-upload-backdrop.exiting,.dr-fallback-backdrop.exiting,.os-modal-backdrop.exiting,.quotes-modal-backdrop.exiting,.node-search-backdrop.exiting,.ms-compose-backdrop.exiting,.kbd-modal-backdrop.exiting,.ui-modal-backdrop.exiting,.home-cell-peek-backdrop.exiting,.onboarding-backdrop.exiting,.file-browser-modal.exiting,.gcal-conn-modal.exiting,.doc-preview-modal.exiting,.dr-upload-modal.exiting,.dr-fallback-modal.exiting,.os-modal.exiting,.quotes-modal.exiting,.node-search-modal.exiting,.ms-compose-modal.exiting,.kbd-modal.exiting,.ui-modal.exiting,.home-cell-peek.exiting,.onboarding-card.exiting,.modal-overlay.exiting,.modal-content.exiting{opacity:0;animation:none}}.modal-header{padding:var(--space-8) var(--space-10);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.modal-header h3{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text)}.modal-close{color:var(--color-text-muted);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);transition:color var(--t-base), background var(--t-base), box-shadow var(--t-base);background:0 0;border:none;align-items:center;display:flex}.modal-close:hover{color:var(--color-text);background:var(--bg-hover)}.modal-close:focus-visible{color:var(--color-text);background:var(--bg-hover);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-500) 25%, transparent);outline:none}.modal-body{padding:var(--space-8) var(--space-10);flex:1;overflow-y:auto}.modal-footer{justify-content:flex-end;gap:var(--space-4);padding:var(--space-6) var(--space-10);border-top:1px solid var(--border-default);display:flex}.modal-footer.modal-footer-spread{align-items:center}.modal-footer-spacer{flex:1}@media (width<=640px){.modal-footer{z-index:5;background:var(--bg-panel);box-shadow:var(--shadow-sm);position:sticky;bottom:0}}.btn-primary{box-shadow:var(--shadow-xs);background:var(--color-accent)!important;color:#fff!important;border:none!important}.btn-primary:hover,.btn-primary:focus-visible{filter:brightness(1.08);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-primary:active{box-shadow:var(--shadow-xs);filter:brightness();transform:translateY(0)}.btn-primary:disabled{filter:none;box-shadow:none;transform:none}.layout-container:has(.editor-toolbar) .main-content{margin-left:48px}.property-panel{padding:var(--space-6);max-height:calc(100dvh - 120px);overflow-y:auto}@supports not (height:100dvh){.property-panel{max-height:calc(100vh - 120px)}}.prop-empty{color:var(--color-text-muted);font-size:var(--text-sm);text-align:center;margin-top:40px}.prop-section-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-accent);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.prop-field{margin-bottom:var(--space-5)}.prop-field label{font-size:var(--text-3xs);color:var(--color-text-muted);margin-bottom:var(--space-1);letter-spacing:.3px;display:block}.prop-field input,.prop-field select,.prop-field textarea{width:100%;padding:var(--input-pad-y-sm) var(--input-pad-x-sm);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-sm);transition:border-color var(--t-base);background:#ffffff0d;outline:none;font-family:inherit}.prop-field textarea{resize:vertical;min-height:60px;line-height:var(--leading-normal)}.prop-field input:focus,.prop-field select:focus,.prop-field textarea:focus{border-color:var(--color-accent)}.prop-readonly{font-size:var(--text-xs);color:var(--color-text-muted);font-family:Fira Code,monospace}.port-edit-row{gap:var(--space-2);margin-bottom:var(--space-2);align-items:center;display:flex}.port-name-input{flex:1;padding:var(--input-pad-y-xs) var(--input-pad-x-xs)!important;font-size:var(--text-xs)!important;border:1px solid var(--border-default)!important;border-radius:var(--radius-xs)!important;color:var(--color-text)!important;background:#ffffff0d!important}.port-signal-select{width:80px!important;padding:var(--input-pad-y-xs) calc(var(--input-pad-x-xs) - 2px)!important;font-size:var(--text-3xs)!important;border:1px solid var(--border-default)!important;border-radius:var(--radius-xs)!important;color:var(--color-text)!important;background:#ffffff0d!important}.port-move-btns{flex-direction:column;gap:0;display:flex}.port-move-btn{color:var(--color-text-muted);cursor:pointer;line-height:var(--leading-none);opacity:.5;transition:opacity var(--t-base);background:0 0;border:none;padding:0}.port-move-btn:hover:not(:disabled),.port-move-btn:focus-visible:not(:disabled){opacity:1;color:var(--color-accent)}.port-move-btn:disabled{opacity:.15;cursor:default}.port-delete-btn{color:var(--color-danger);cursor:pointer;padding:var(--space-1);opacity:.5;transition:opacity var(--t-base);background:0 0;border:none}.port-delete-btn:hover,.port-delete-btn:focus-visible{opacity:1}.btn-add-port{border:1px solid var(--border-default);color:var(--color-text-muted);border-radius:var(--radius-xs);cursor:pointer;font-size:var(--text-3xs);transition:all var(--t-base);background:0 0;align-items:center;gap:3px;padding:3px 8px;display:inline-flex}.btn-add-port:hover,.btn-add-port:focus-visible{border-color:var(--color-accent);color:var(--color-accent)}.template-edit-modal{width:min(720px,100%)}.signal-combobox{flex:1;min-width:0;position:relative}.signal-combobox-input-wrap{background:var(--bg-panel,#fff);border:1px solid var(--border-default);border-radius:var(--radius-xs);transition:border-color var(--t-base);align-items:center;gap:6px;padding:4px 6px;display:flex}.signal-combobox-input-wrap:focus-within{border-color:var(--color-accent,#2563eb)}.signal-combobox-dot{border:1px solid #fff6;border-radius:50%;flex-shrink:0;width:10px;height:10px;box-shadow:0 0 0 1px #0000000d}.signal-combobox-input{outline:none;flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-xs)!important;color:var(--color-text)!important;background:0 0!important;border:none!important;padding:0!important}.signal-combobox-input::placeholder{color:var(--color-text);opacity:.6}.signal-combobox-chev{color:var(--color-text-muted);pointer-events:none;display:inline-flex}.signal-combobox-dropdown{z-index:100;background:var(--bg-panel,#fff);border:1px solid var(--border-default);border-radius:var(--radius-sm);max-height:240px;padding:4px 0;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 18px #0000001f}.signal-combobox-group{margin-bottom:2px}.signal-combobox-group-label{font-size:var(--text-3xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:var(--weight-semibold,600);padding:4px 10px 2px}.signal-combobox-option{font-size:var(--text-xs);color:var(--color-text);cursor:pointer;align-items:center;gap:8px;padding:4px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.signal-combobox-option.active{background:var(--bg-hover-neutral,#f3f4f6)}.signal-combobox-option.selected{background:var(--color-accent-50,#eff6ff);color:var(--color-accent,#2563eb);font-weight:var(--weight-semibold,600)}.signal-combobox-option-dot{border:1px solid #00000014;border-radius:50%;flex-shrink:0;width:8px;height:8px}.signal-combobox-empty{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;padding:10px 12px}.port-color-dot{border:1px solid #fff6;border-radius:50%;flex-shrink:0;width:10px;height:10px;box-shadow:0 0 0 1px #0000000d}.port-count{background:var(--color-accent-50,#eff6ff);color:var(--color-accent,#2563eb);font-size:var(--text-3xs);font-weight:var(--weight-medium,500);font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0;border-radius:9999px;margin-left:6px;padding:1px 7px;display:inline-block}.port-empty-hint{border:1px dashed var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;margin-bottom:var(--space-3);background:#00000005;padding:12px 8px}.port-quick-add{margin-bottom:var(--space-6);flex-wrap:wrap;gap:6px;display:flex}.port-quick-btn{background:var(--bg-panel,#fff);border:1px solid var(--border-default);border-left:3px solid var(--color-accent,#2563eb);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text);cursor:pointer;transition:all var(--t-base);align-items:center;gap:4px;padding:5px 10px;display:inline-flex}.port-quick-btn.out{border-left-color:#10b981}.port-quick-btn:hover,.port-quick-btn:focus-visible{background:var(--bg-hover-neutral,#f3f4f6);filter:brightness(1.03)}.port-cols{gap:var(--space-6);grid-template-columns:1fr;display:grid}@media (width>=768px){.port-cols{grid-template-columns:1fr 1fr}}.port-col{min-width:0}.bulk-port-form{margin-top:var(--space-3);padding:var(--space-4) var(--space-5);background:color-mix(in srgb, var(--color-accent) 8%, var(--bg-panel));border:1px solid var(--color-accent);border-radius:var(--radius-sm);gap:var(--space-3);flex-direction:column;display:flex}.bulk-port-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.bulk-port-row label{gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);flex-direction:column;flex:1;min-width:100px;display:flex}.bulk-port-row input,.bulk-port-row select{padding:var(--space-3) var(--space-4);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-sm);font-family:inherit}.bulk-port-actions{gap:var(--space-3);display:flex}.bulk-port-preview{font-size:var(--text-2xs);color:var(--color-text-muted);word-break:break-all;font-family:Fira Code,monospace}.btn-duplicate{align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);color:#60a5fa;cursor:pointer;font-size:var(--text-sm);transition:all var(--t-base);background:#3b82f61a;border:1px solid #3b82f64d;flex:1;justify-content:center;display:flex}.btn-duplicate:hover,.btn-duplicate:focus-visible{background:#3b82f633}.btn-delete{align-items:center;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);color:var(--color-danger);cursor:pointer;font-size:var(--text-sm);transition:all var(--t-base);background:#ef44441a;border:1px solid #ef44444d;flex:1;justify-content:center;display:flex}.btn-delete:hover,.btn-delete:focus-visible{background:#ef444433}.color-picker-row{gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.color-swatch{width:var(--space-11);height:var(--space-11);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--t-base);border:2px solid #0000}.color-swatch:hover,.color-swatch:focus-visible{transform:scale(1.15)}.color-swatch.active{border-color:var(--color-text-on-accent);box-shadow:0 0 6px #fff6}.context-menu-overlay{z-index:var(--z-dropdown);position:fixed;inset:0}.context-menu{z-index:201;background:var(--bg-panel);-webkit-backdrop-filter:blur(var(--blur-xl));backdrop-filter:blur(var(--blur-xl));border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-2);min-width:160px;box-shadow:var(--shadow-lg);position:fixed}.context-menu-item{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;transition:background var(--t-fast);background:0 0;border:none;display:flex}.context-menu-item:hover,.context-menu-item:focus-visible{background:var(--bg-hover)}.context-menu-item.danger{color:var(--color-danger)}.context-menu-item.danger:hover,.context-menu-item.danger:focus-visible{background:var(--bg-danger)}.equip-info-panel{padding:var(--space-6);font-size:var(--text-sm)}.info-empty,.info-no-data{color:var(--color-text-muted);font-size:var(--text-xs);text-align:center;margin:8px 0;font-style:italic}.info-header-box{align-items:center;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);margin-bottom:var(--space-6);font-weight:var(--weight-semibold);font-size:var(--text-base);color:#60a5fa;background:#3b82f61a;border:1px solid #3b82f633;display:flex}.info-section{margin-bottom:var(--space-6)}.info-section-title{align-items:center;gap:var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-accent);text-transform:uppercase;letter-spacing:.5px;padding-bottom:var(--space-2);border-bottom:1px solid var(--border-default);margin:14px 0 6px;display:flex}.info-field{border-bottom:1px solid #ffffff08;justify-content:space-between;align-items:baseline;padding:4px 0;display:flex}.info-label{font-size:var(--text-3xs);color:var(--color-text-muted);align-items:center;gap:var(--space-2);min-width:70px;display:flex}.info-value{font-size:var(--text-sm);color:var(--color-text);text-align:right}.info-value.mono{font-family:Fira Code,monospace;font-size:var(--text-xs)}.info-notes{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-snug)}.info-status{font-size:var(--text-3xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-4);border-radius:var(--radius-xl)}.info-status.active{color:var(--color-success);background:#10b98126}.info-status.spare{background:color-mix(in srgb, var(--amber-500) 15%, transparent);color:var(--amber-500)}.info-status.maintenance{color:var(--color-danger);background:#ef444426}.info-doc-item{gap:var(--space-4);cursor:default;border-bottom:1px solid #ffffff08;padding:4px 0;display:flex}.info-doc-item:hover,.info-doc-item:focus-visible{background:#ffffff08}.doc-date{font-size:var(--text-3xs);color:var(--color-text-muted);min-width:70px;font-family:Fira Code,monospace}.doc-title{font-size:var(--text-xs);color:var(--color-text);line-height:var(--leading-snug)}.info-contact-item{gap:var(--space-3);border-bottom:1px solid #ffffff08;grid-template-columns:auto 1fr auto;align-items:center;padding:4px 0;display:grid}.contact-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.contact-team{font-size:var(--text-3xs);color:var(--color-text-muted)}.contact-phone{font-size:var(--text-xs);color:#60a5fa;font-family:Fira Code,monospace}.search-trigger{border:1px solid var(--border-default);color:var(--color-text-muted);border-radius:var(--radius-md);cursor:pointer;padding:var(--space-3) var(--space-5);transition:all var(--t-base);background:0 0;align-items:center;display:flex}.search-trigger:hover,.search-trigger:focus-visible{border-color:var(--color-accent);color:var(--color-text)}.search-bar{position:relative}.search-input-wrap{align-items:center;gap:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:calc(var(--input-pad-y-sm) - 2px) var(--input-pad-x-sm);background:#ffffff0d;min-width:240px;display:flex}.search-input-wrap:focus-within{border-color:var(--color-accent)}.search-input{color:var(--color-text);font-size:var(--text-sm);background:0 0;border:none;outline:none;flex:1;min-width:180px;font-family:inherit}.search-input::placeholder{color:var(--color-text-muted)}.search-close{color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);background:0 0;border:none}.search-close:hover,.search-close:focus-visible{color:var(--color-text)}.search-results{margin-top:var(--space-2);background:var(--bg-panel);-webkit-backdrop-filter:blur(var(--blur-xl));backdrop-filter:blur(var(--blur-xl));border:1px solid var(--border-default);border-radius:var(--radius-lg);max-height:300px;z-index:var(--z-dropdown);box-shadow:var(--shadow-lg);position:absolute;top:100%;left:0;right:0;overflow-y:auto}.search-result-item{gap:var(--space-1);width:100%;padding:var(--space-4) var(--space-6);cursor:pointer;text-align:left;transition:background var(--t-fast);background:0 0;border:none;border-bottom:1px solid #ffffff08;flex-direction:column;display:flex}.search-result-item:hover,.search-result-item:focus-visible{background:#3b82f61a}.result-name{font-size:var(--text-sm);color:var(--color-text);font-weight:var(--weight-medium)}.result-detail{font-size:var(--text-3xs);color:var(--color-text-muted)}.search-no-result{padding:var(--space-6);text-align:center;font-size:var(--text-xs);color:var(--color-text-muted)}.signal-flow-legend{border-radius:var(--radius-xl);padding:var(--space-6) var(--space-8);z-index:10;font-size:var(--text-sm);gap:var(--space-2);min-width:160px;max-height:350px;-webkit-backdrop-filter:blur(var(--blur-md));backdrop-filter:blur(var(--blur-md));background:#0a0f19f2;border:1px solid #fff3;flex-direction:column;display:flex;position:absolute;bottom:60px;left:12px;overflow-y:auto}.legend-title{font-size:var(--text-sm);font-weight:var(--weight-bold);color:#e2e8f0;margin-bottom:var(--space-2);letter-spacing:.3px;justify-content:space-between;align-items:center;display:flex}.legend-close{color:var(--color-text-faint);font-size:var(--text-lg);cursor:pointer;background:0 0;border:none;padding:0 2px}.legend-close:hover,.legend-close:focus-visible{color:#e2e8f0}.legend-group-title{font-size:var(--text-3xs);font-weight:var(--weight-semibold);color:var(--color-text-faint);margin-top:var(--space-2);margin-bottom:var(--space-1);text-transform:uppercase;letter-spacing:.3px}.legend-columns{gap:var(--space-1) var(--space-8);grid-template-columns:1fr 1fr;display:grid}.legend-row{align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-3);color:#e2e8f0;font-size:var(--text-sm);border-radius:var(--radius-xs);transition:background var(--t-fast);display:flex}.legend-row:hover,.legend-row:focus-visible{background:#ffffff14}.legend-row.legend-hidden{opacity:.5}.legend-reset{width:100%;margin-bottom:var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-faint);font-size:var(--text-3xs);cursor:pointer;background:0 0;border:1px solid #ffffff26;padding:4px 0;display:block}.legend-reset:hover,.legend-reset:focus-visible{color:#e2e8f0;background:#ffffff14}.text-node{white-space:pre-wrap;color:#374151;background:#fffdf2;border:1px dashed #fcd34d;border-radius:4px;min-width:80px;max-width:280px;padding:6px 10px;font-family:inherit;line-height:1.4}.edit-mode .react-flow__node-textNode .text-node{cursor:move}.edit-mode .react-flow__node-textNode.selected .text-node{border:2px solid var(--color-accent,#2563eb);background:#fff;box-shadow:0 2px 6px #2563eb26}.text-node .node-label-input{font-family:inherit;font-size:inherit;color:inherit;background:0 0;border:0;outline:none;width:100%;padding:0}.node-label-textarea{resize:none;white-space:pre-wrap;min-width:160px;line-height:1.4;overflow:hidden}.react-flow__node-textNode{box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.react-flow__node-textNode.selected .text-node{outline:1px dashed var(--focus-ring-color);outline-offset:4px}.text-node-image-wrap{max-width:100%;margin-top:6px;line-height:0;display:inline-block;position:relative}.text-node-image{object-fit:contain;cursor:zoom-in;border:1px solid #e5e7eb;border-radius:4px;width:auto;max-width:240px;height:auto;max-height:180px;display:block}.edit-mode .text-node-image{cursor:move}.text-node-image-resize{background:var(--color-accent,#2563eb);cursor:nwse-resize;touch-action:none;border:2px solid #fff;border-radius:2px;width:12px;height:12px;position:absolute;bottom:-5px;right:-5px}.text-node-uploading{color:var(--color-text-muted,#6b7280);margin-top:4px;font-size:11px}.text-node-lightbox{z-index:2000;padding:var(--space-6,24px);cursor:zoom-out;background:#0f172ac7;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.text-node-lightbox img{object-fit:contain;cursor:default;border-radius:6px;max-width:92vw;max-height:92vh;box-shadow:0 8px 40px #00000080}.text-node-lightbox-actions{top:var(--space-4,16px);right:var(--space-4,16px);gap:var(--space-2,8px);align-items:center;display:flex;position:fixed}.text-node-lightbox-close,.text-node-lightbox-remove{padding:var(--space-2,8px);color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:6px;align-items:center;gap:4px;display:flex}.text-node-lightbox-close:hover{background:#ffffff42}.text-node-lightbox-remove{background:#dc2626d9}.text-node-lightbox-remove:hover{background:#dc2626}.text-node-lightbox-nav{color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:999px;justify-content:center;align-items:center;width:46px;height:46px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.text-node-lightbox-nav:hover{background:#ffffff42}.text-node-lightbox-nav.prev{left:var(--space-4,16px)}.text-node-lightbox-nav.next{right:var(--space-4,16px)}.text-node-lightbox-count{bottom:var(--space-4,16px);color:#fff;font-size:var(--text-sm,13px);font-variant-numeric:tabular-nums;background:#0000008c;border-radius:999px;padding:4px 12px;position:fixed;left:50%;transform:translate(-50%)}.equip-photo-badge{border:1px solid var(--color-accent,#2563eb);background:var(--color-accent-bg,#eff6ff);color:var(--color-accent,#2563eb);cursor:pointer;border-radius:3px;flex:none;justify-content:center;align-items:center;margin-left:2px;padding:1px 3px;display:inline-flex}.equip-photo-badge:hover{background:var(--color-accent-bg-hover,#dbeafe)}.equip-photo-uploading{color:var(--color-text-muted,#6b7280);font-size:11px}.react-flow__node-tableNode{box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.table-node{color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:4px;max-width:720px;font-size:12px;line-height:1.4;overflow:hidden}.table-node table{border-collapse:collapse;width:100%}.table-node td{vertical-align:top;white-space:pre-wrap;word-break:keep-all;overflow-wrap:break-word;border:1px solid #e5e7eb;max-width:220px;padding:3px 8px}.table-node tr:first-child td{background:#f9fafb;font-weight:600}.edit-mode .react-flow__node-tableNode .table-node td{cursor:cell}.edit-mode .react-flow__node-tableNode.selected .table-node{border-color:var(--color-accent,#2563eb);box-shadow:0 2px 6px #2563eb26}.table-node-cell-input{outline:2px solid var(--color-accent,#2563eb);width:100%;min-width:60px;font:inherit;color:inherit;background:#fff;border:0;padding:1px 2px}.legend-line{width:var(--space-12);height:var(--space-2);border-radius:2px;flex-shrink:0;display:inline-block}.layer-row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--t-fast), opacity var(--t-base);font-size:var(--text-sm);display:flex}.layer-row:hover,.layer-row:focus-visible{background:#ffffff14}.layer-eye{color:var(--color-text-faint);flex-shrink:0;display:flex}.layer-row:hover .layer-eye{color:#e2e8f0}.layer-color{width:var(--space-10);height:var(--space-2);border-radius:2px;flex-shrink:0}.layer-name{color:#e2e8f0;flex:1}.layer-count{font-size:var(--text-3xs);color:var(--color-text-muted);text-align:right;min-width:20px}.toast-container{top:calc(max(env(safe-area-inset-top), 0px) + var(--header-h) + 16px);right:calc(max(env(safe-area-inset-right), 0px) + 16px);z-index:var(--z-toast);gap:var(--space-2);pointer-events:none;flex-direction:column;max-height:calc(100dvh - 96px);display:flex;position:fixed;overflow:hidden}.toast-item{pointer-events:auto;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-2) var(--space-3) var(--space-4);background:var(--bg-panel);border:1px solid var(--border-default);border-left:3px solid var(--toast-accent,var(--color-accent));border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);box-shadow:var(--shadow-lg);cursor:pointer;min-width:240px;max-width:min(420px,100vw - 32px);transition:transform var(--t-base), box-shadow var(--t-base);animation:.28s cubic-bezier(.16,1,.3,1) toast-in;display:flex}.toast-item:hover{box-shadow:var(--shadow-xl);transform:translate(-2px)translateY(-1px)}.toast-item:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--toast-accent,var(--color-accent)) 25%, transparent), var(--shadow-xl);outline:none}.toast-success{--toast-accent:var(--color-success)}.toast-error{--toast-accent:var(--color-danger)}.toast-warning{--toast-accent:var(--color-warning)}.toast-info{--toast-accent:var(--color-accent)}.toast-icon{width:var(--space-12);height:var(--space-12);font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--toast-accent,var(--color-accent));background:color-mix(in srgb, var(--toast-accent,var(--color-accent)) 18%, transparent);border-radius:var(--radius-pill);flex:none;justify-content:center;align-items:center;display:inline-flex}.toast-msg{word-break:keep-all;overflow-wrap:break-word;flex:auto}.toast-close{color:var(--color-text-muted);cursor:pointer;width:var(--space-12);height:var(--space-12);border-radius:var(--radius-sm);font-size:var(--text-xs);background:0 0;border:none;flex:none;justify-content:center;align-items:center;display:inline-flex}.toast-close:hover,.toast-close:focus-visible{background:var(--bg-hover);color:var(--color-text)}.toast-action{border:1px solid var(--color-accent);color:var(--color-accent);cursor:pointer;padding:var(--space-2) var(--space-4);min-height:var(--tap-min);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;transition:background var(--t-fast), color var(--t-fast);background:0 0;flex:none}.toast-action:hover{background:var(--color-accent-fill);color:var(--color-text-on-accent);border-color:var(--color-accent-fill);box-shadow:var(--shadow-sm)}.toast-action:focus-visible{background:var(--color-accent-fill);color:var(--color-text-on-accent);border-color:var(--color-accent-fill);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 25%, transparent);outline:none}@keyframes toast-in{0%{opacity:0;transform:translate(40px)scale(.96)}to{opacity:1;transform:translate(0)scale(1)}}.toast-item.toast-exiting{pointer-events:none;animation:.2s cubic-bezier(.4,0,1,1) forwards toast-out}@keyframes toast-out{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(40px)scale(.96)}}@media (width<=640px){.toast-container{top:calc(max(env(safe-area-inset-top), 0px) + var(--header-h) + 8px);right:calc(max(env(safe-area-inset-right), 0px) + var(--space-3));left:calc(max(env(safe-area-inset-left), 0px) + var(--space-3));align-items:stretch}.toast-item{min-width:0;max-width:none}}@media (prefers-reduced-motion:reduce){.toast-item{animation:toast-fade var(--t-fast) ease-out}.toast-item.toast-exiting{animation:toast-fade-out var(--t-fast) ease-in forwards}@keyframes toast-fade{0%{opacity:0}to{opacity:1}}@keyframes toast-fade-out{0%{opacity:1}to{opacity:0}}}.skeleton{background:linear-gradient(90deg, var(--bg-panel) 0%, var(--bg-hover) 50%, var(--bg-panel) 100%);animation:skeleton-shimmer var(--dur-shimmer) ease-in-out infinite;vertical-align:middle;background-size:200% 100%;display:inline-block}.skeleton-block{display:block}.skeleton-radius-sm{border-radius:var(--radius-sm)}.skeleton-radius-md{border-radius:var(--radius-md)}.skeleton-radius-pill{border-radius:var(--radius-pill)}.skeleton-radius-full{border-radius:var(--radius-full)}@keyframes skeleton-shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton-text{gap:var(--space-4);flex-direction:column;display:flex}.skeleton-text .skeleton{width:100%}.skeleton-card{gap:var(--space-6);padding:var(--space-6);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);flex-direction:column;display:flex}.skeleton-list{flex-direction:column;display:flex}.skeleton-list-gap-sm{gap:var(--space-4)}.skeleton-list-gap-md{gap:var(--space-6)}.skeleton-list-row{gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--border-default);flex-direction:column;display:flex}.skeleton-list-row:last-child{border-bottom:none}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--bg-hover);animation:none}}.equipment-library-section{flex-direction:column;gap:14px;display:flex}.equipment-library-hint{color:var(--color-text-muted,#6b7280);font-size:var(--text-sm,13px);margin:0;line-height:1.5}.equipment-library-warning{border-radius:var(--radius-sm,6px);color:#92400e;font-size:var(--text-xs,12px);background:#fef3c7;border:1px solid #f59e0b;align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.equipment-library-toolbar{border-bottom:1px solid var(--border-default,#e5e7eb);flex-wrap:wrap;align-items:center;gap:8px;padding-bottom:8px;display:flex}.equipment-library-toolbar .field{border:1px solid var(--border-default,#d1d5db);border-radius:var(--radius-sm,6px);background:var(--bg-input,#fff);height:30px;font-size:var(--text-xs,12px);padding:4px 8px}.equipment-library-tablewrap{border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-sm,6px);max-height:60vh;overflow-y:auto}.equipment-library-table{border-collapse:collapse;width:100%;font-size:var(--text-xs,12px)}.equipment-library-table thead{background:var(--bg-elevated,#f9fafb);z-index:1;position:sticky;top:0}.equipment-library-table th{text-align:left;border-bottom:1px solid var(--border-default,#e5e7eb);color:var(--color-text-muted,#6b7280);padding:8px;font-weight:600}.equipment-library-table td{border-bottom:1px solid var(--border-faint,#f1f5f9);vertical-align:middle;padding:4px 6px}.equipment-library-table tr:hover{background:var(--bg-hover,#f9fafb)}.equipment-library-table .field-tight{width:100%;height:26px;font-size:var(--text-xs,12px);background:0 0;border:1px solid #0000;border-radius:4px;padding:2px 6px}.equipment-library-table .field-tight:hover{border-color:var(--border-default,#e5e7eb)}.equipment-library-table .field-tight:focus{border-color:var(--color-accent,#2563eb);background:#fff;outline:none}.equipment-library-table .key-cell{color:var(--color-text-muted,#6b7280);text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-family:ui-monospace,monospace;overflow:hidden}.equipment-library-table .port-cell{text-align:center;color:var(--color-text-muted,#6b7280);width:60px;font-family:ui-monospace,monospace}.equipment-library-table .origin-badge{border-radius:9999px;padding:2px 7px;font-family:ui-monospace,monospace;font-size:10px;font-weight:600}.equipment-library-table .origin-badge.seed{color:#3730a3;background:#e0e7ff}.equipment-library-table .origin-badge.admin{color:#166534;background:#dcfce7}.equipment-library-table .row-delete{width:28px;height:28px;color:var(--color-text-muted,#6b7280);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.equipment-library-table .row-delete:hover{color:#b91c1c;background:#fee2e2;border-color:#fecaca}.equipment-library-table .empty-row{text-align:center;color:var(--color-text-muted,#6b7280);padding:24px;font-style:italic}.equipment-library-actions{border-top:1px solid var(--border-default,#e5e7eb);flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;display:flex}.equipment-library-dirty{color:#b45309;font-size:var(--text-xs,12px);font-weight:600}.equipment-library-meta{color:var(--color-text-muted,#6b7280);font-size:var(--text-xs,11px)}.equip-router-chip{background:var(--color-accent-bg,#dbeafe);border:1px solid var(--color-accent-border,#93c5fd);color:var(--color-accent-text,#1e40af);letter-spacing:.02em;cursor:pointer;border-radius:4px;align-items:center;gap:3px;margin-left:auto;padding:1px 6px 1px 5px;font-family:ui-monospace,monospace;font-size:9px;font-weight:600;text-decoration:none;transition:background .12s;display:inline-flex}.equip-router-chip:hover{background:var(--color-accent-bg-hover,#bfdbfe)}.equip-router-chip:focus-visible{outline:2px solid var(--color-accent,#2563eb);outline-offset:1px}.node-detail-section-hint{font-size:var(--text-xs,11px);color:var(--color-text-muted,#6b7280);margin-left:6px;font-weight:400}.node-detail-hint{color:var(--color-text-muted,#6b7280);font-size:var(--text-xs,11px);margin-top:4px;line-height:1.45;display:block}.diagram-sidebar-group{display:contents}.diagram-sidebar-floor-header{background:var(--bg-elevated,#f9fafb);color:var(--color-text-muted,#6b7280);font-size:var(--text-xs,11px);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--border-faint,#f1f5f9);z-index:1;justify-content:space-between;align-items:center;padding:8px 12px 4px;font-weight:600;display:flex;position:sticky;top:0}.diagram-sidebar-floor-count{background:var(--bg-app,#f3f4f6);color:var(--color-text-muted,#6b7280);border-radius:9999px;padding:1px 6px;font-size:10px}.diagram-sidebar-floor-rooms{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.diagram-extras-group-actions{gap:8px;display:inline-flex}.gwanghwamun-catalog-backdrop{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:24px;animation:.16s ease-out fadeIn;display:flex;position:fixed;inset:0}.gwanghwamun-catalog-backdrop.exiting{animation:.2s ease-in forwards fadeOut}.gwanghwamun-catalog-modal{background:var(--bg-elevated,#fff);border-radius:var(--radius-lg,8px);flex-direction:column;width:100%;max-width:720px;max-height:85vh;animation:.2s ease-out slideUp;display:flex;box-shadow:0 20px 50px #00000040}.gwanghwamun-catalog-modal.exiting{animation:.2s ease-in forwards slideDown}.gwanghwamun-catalog-header{border-bottom:1px solid var(--border-default,#e5e7eb);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.gwanghwamun-catalog-header h2{font-size:var(--text-base,15px);color:var(--color-text,#111);align-items:center;gap:8px;margin:0;font-weight:600;display:inline-flex}.gwanghwamun-catalog-close{width:28px;height:28px;color:var(--color-text-muted,#6b7280);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.gwanghwamun-catalog-close:hover{background:var(--bg-hover,#f3f4f6)}.gwanghwamun-catalog-hint{color:#713f12;font-size:var(--text-xs,12px);background:#fefce8;border-bottom:1px solid #fde68a;padding:12px 20px;line-height:1.5}.gwanghwamun-catalog-body{flex:1;padding:12px 20px;overflow-y:auto}.gwanghwamun-catalog-floor{margin-bottom:16px}.gwanghwamun-catalog-floor-head{border-bottom:1px solid var(--border-faint,#f1f5f9);justify-content:space-between;align-items:center;padding:6px 0;display:flex}.gwanghwamun-catalog-floor-label{font-size:var(--text-xs,11px);color:var(--color-text-muted,#6b7280);letter-spacing:.06em;text-transform:uppercase;font-weight:700}.gwanghwamun-catalog-group-toggle{border:1px solid var(--border-default,#e5e7eb);color:var(--color-text-muted,#6b7280);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:10px}.gwanghwamun-catalog-group-toggle:hover:not(:disabled){background:var(--bg-hover,#f3f4f6)}.gwanghwamun-catalog-group-toggle:disabled{opacity:.4;cursor:not-allowed}.gwanghwamun-catalog-list{flex-direction:column;margin:4px 0 0;padding:0;list-style:none;display:flex}.gwanghwamun-catalog-item{border-radius:4px;padding:6px 4px;transition:background .12s}.gwanghwamun-catalog-item:hover:not(.exists){background:var(--bg-hover,#f9fafb)}.gwanghwamun-catalog-item.checked{background:#eff6ff}.gwanghwamun-catalog-item.exists{opacity:.55}.gwanghwamun-catalog-item label{cursor:pointer;font-size:var(--text-sm,13px);align-items:center;gap:10px;display:flex}.gwanghwamun-catalog-item.exists label{cursor:not-allowed}.gwanghwamun-catalog-item-main{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.gwanghwamun-catalog-cat-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.gwanghwamun-catalog-item-name{color:var(--color-text,#111);font-weight:500}.gwanghwamun-catalog-item-hint{color:var(--color-text-muted,#6b7280);font-size:var(--text-xs,11px)}.gwanghwamun-catalog-item-exists{background:var(--bg-app,#f3f4f6);color:var(--color-text-muted,#6b7280);border-radius:9999px;padding:1px 6px;font-size:10px}.gwanghwamun-catalog-footer{border-top:1px solid var(--border-default,#e5e7eb);background:var(--bg-app,#fafafa);border-radius:0 0 var(--radius-lg,8px) var(--radius-lg,8px);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.gwanghwamun-catalog-summary{font-size:var(--text-xs,12px);color:var(--color-text-muted,#6b7280)}.gwanghwamun-catalog-actions{gap:8px;display:inline-flex}.gwanghwamun-catalog-actions .btn-outline,.gwanghwamun-catalog-actions .btn-primary{border-radius:var(--radius-sm,6px);font-size:var(--text-xs,12px);cursor:pointer;align-items:center;gap:4px;padding:7px 14px;font-weight:600;display:inline-flex}.gwanghwamun-catalog-actions .btn-outline{border:1px solid var(--border-default,#d1d5db);color:var(--color-text,#111);background:0 0}.gwanghwamun-catalog-actions .btn-outline:hover{background:var(--bg-hover,#f3f4f6)}.gwanghwamun-catalog-actions .btn-primary{border:1px solid var(--color-accent,#2563eb);background:var(--color-accent,#2563eb);color:#fff}.gwanghwamun-catalog-actions .btn-primary:hover:not(:disabled){filter:brightness(1.05)}.gwanghwamun-catalog-actions .btn-primary:disabled{opacity:.45;cursor:not-allowed}.router-diagram-usage{background:var(--bg-elevated,#f8fafc);border:1px solid var(--border-default,#e5e7eb);border-left:3px solid var(--color-accent,#2563eb);border-radius:var(--radius-sm,6px);margin:8px 0 12px;padding:10px 12px}.router-diagram-usage-head{font-size:var(--text-xs,12px);color:var(--color-text,#111);align-items:center;gap:6px;margin-bottom:6px;display:flex}.router-diagram-usage-head strong{font-weight:600}.router-diagram-usage-summary{color:var(--color-text-muted,#6b7280);font-size:var(--text-xs,11px);margin-left:auto}.router-diagram-usage-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.router-diagram-usage-item{background:var(--bg-input,#fff);border:1px solid var(--border-default,#e5e7eb);font-size:var(--text-xs,12px);color:var(--color-text,#111);cursor:pointer;border-radius:9999px;align-items:center;gap:6px;padding:4px 8px 4px 10px;transition:background .12s,border-color .12s;display:inline-flex}.router-diagram-usage-item:hover{background:var(--color-accent-bg,#dbeafe);border-color:var(--color-accent,#2563eb);color:var(--color-accent-text,#1e40af)}.router-diagram-usage-item:focus-visible{outline:2px solid var(--color-accent,#2563eb);outline-offset:1px}.router-diagram-usage-room{font-weight:500}.router-diagram-usage-count{background:var(--color-accent,#2563eb);color:#fff;border-radius:9999px;justify-content:center;align-items:center;min-width:18px;height:16px;padding:0 5px;font-family:ui-monospace,monospace;font-size:10px;font-weight:700;display:inline-flex}@media (width<=768px){.equipment-library-toolbar{gap:6px}.equipment-library-toolbar .field{padding:4px 6px;font-size:11px}.equipment-library-tablewrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.equipment-library-table{min-width:560px;font-size:11px}.equipment-library-table th,.equipment-library-table td{padding:6px 4px}.equipment-library-table .key-cell{max-width:80px;font-size:10px}.equipment-library-table .origin-badge{padding:1px 5px;font-size:9px}}@media (width<=480px){.equipment-library-hint{font-size:12px}.equipment-library-actions{flex-direction:column;align-items:stretch;gap:6px}.equipment-library-actions .equipment-library-meta{text-align:center}}@media (width<=640px){.gwanghwamun-catalog-backdrop{-webkit-overflow-scrolling:touch;align-items:flex-start;padding:0;overflow-y:auto}.gwanghwamun-catalog-modal{width:100%;max-width:100%;max-height:none;margin:0 0 calc(80px + env(safe-area-inset-bottom,0px));border-radius:0;min-height:100%}.gwanghwamun-catalog-body{flex:none;overflow:visible}.gwanghwamun-catalog-header{padding:12px 16px}.gwanghwamun-catalog-header h2{font-size:14px}.gwanghwamun-catalog-hint{padding:10px 16px;font-size:11px;line-height:1.45}.gwanghwamun-catalog-body{padding:10px 16px}.gwanghwamun-catalog-floor{margin-bottom:12px}.gwanghwamun-catalog-item label{gap:8px;font-size:12px}.gwanghwamun-catalog-item-hint{display:none}.gwanghwamun-catalog-footer{border-radius:0;flex-direction:column;align-items:stretch;gap:8px;padding:12px 16px}.gwanghwamun-catalog-summary{text-align:center}.gwanghwamun-catalog-actions{justify-content:stretch}.gwanghwamun-catalog-actions .btn-outline,.gwanghwamun-catalog-actions .btn-primary{flex:1;justify-content:center;padding:10px}}@media (width<=480px){.palette-header,.palette-header-actions{flex-wrap:wrap;gap:4px}.palette-pending-badge{padding:3px 7px;font-size:10px}.palette-restore-btn{padding:3px 6px;font-size:10px}.palette-new-btn{padding:3px 7px;font-size:11px}.equip-router-chip{text-overflow:ellipsis;white-space:nowrap;max-width:60px;padding:1px 5px 1px 4px;font-size:8px;overflow:hidden}}@media (width<=640px){.router-diagram-usage{margin:6px 0 10px;padding:8px 10px}.router-diagram-usage-head{font-size:11px}.router-diagram-usage-summary{font-size:10px}.router-diagram-usage-list{gap:4px}.router-diagram-usage-item{padding:3px 7px 3px 9px;font-size:11px}.router-diagram-usage-count{min-width:16px;height:14px;font-size:9px}}@media (width<=480px){.node-detail-section-hint{margin-top:2px;margin-left:0;display:block}.node-detail-hint{font-size:10px}}@media (width<=640px){.diagram-extras-group-actions{flex-wrap:wrap;gap:6px}.diagram-extras-group-actions button{flex:auto}}.building-catalog-tabs{border-bottom:1px solid var(--border-default,#e5e7eb);background:var(--bg-elevated,#fff);flex-wrap:wrap;gap:4px;padding:8px 20px 0;display:flex}.building-catalog-tab{color:var(--color-text-muted,#6b7280);font-size:var(--text-xs,12px);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:8px 12px;font-weight:500;transition:color .12s,border-color .12s;display:inline-flex;position:relative}.building-catalog-tab:hover{color:var(--color-text,#111)}.building-catalog-tab.active{color:var(--color-accent,#2563eb);border-bottom-color:var(--color-accent,#2563eb);font-weight:600}.building-catalog-tab:focus-visible{outline:2px solid var(--color-accent,#2563eb);outline-offset:-2px;border-radius:4px 4px 0 0}.building-catalog-tab-badge{background:var(--color-accent,#2563eb);color:#fff;border-radius:9999px;justify-content:center;align-items:center;min-width:18px;height:16px;padding:0 5px;font-family:ui-monospace,monospace;font-size:10px;font-weight:700;display:inline-flex}.building-catalog-empty{text-align:center;color:var(--color-text-muted,#6b7280);font-size:var(--text-sm,13px);padding:24px;font-style:italic}@media (width<=480px){.building-catalog-tabs{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding:6px 16px 0;overflow-x:auto}.building-catalog-tab{flex:none;padding:8px 10px;font-size:11px}}.diagram-sidebar-list{padding:4px 0}.diagram-sidebar-site-group{display:block}.diagram-sidebar-search-row{border-bottom:1px solid var(--border-faint,#f1f5f9);background:var(--bg-elevated,#fff);flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;display:flex}.diagram-sidebar-site-filter{border-bottom:1px solid var(--border-faint,#f1f5f9);background:var(--bg-elevated,#fff);flex-shrink:0;padding:6px 10px;display:flex}.diagram-sidebar-search-icon{color:var(--color-text-muted,#6b7280);flex-shrink:0}.diagram-sidebar-search-input{border:1px solid var(--border-default,#e5e7eb);min-width:0;font-size:var(--text-xs,12px);background:var(--bg-app,#fff);color:var(--color-text,#111);border-radius:6px;flex:1;padding:5px 8px;font-family:inherit;transition:border-color .12s,box-shadow .12s}.diagram-sidebar-search-input:focus{border-color:var(--color-accent-500,#3b82f6);box-shadow:0 0 0 2px var(--color-accent-100,#dbeafe);outline:none}.diagram-sidebar-search-clear{width:20px;height:20px;color:var(--color-text-muted,#6b7280);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.diagram-sidebar-search-clear:hover{background:var(--bg-hover,#f3f4f6);color:var(--color-text,#111)}.diagram-sidebar-search-count{font-size:var(--text-xs,11px);color:var(--color-text-muted,#6b7280);font-variant-numeric:tabular-nums;white-space:nowrap}.diagram-sidebar-search-empty{font-size:var(--text-xs,12px);color:var(--color-text-muted,#6b7280);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;display:flex}.diagram-sidebar-search-empty button{border:1px solid var(--border-default,#e5e7eb);color:var(--color-accent-700,#1d4ed8);font-size:var(--text-xs,11px);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px}.diagram-sidebar-search-empty button:hover{background:var(--color-accent-50,#eff6ff)}.diagram-sidebar-site-header-row{border-top:1px solid var(--border-faint,#f1f5f9);background:var(--bg-elevated,#fff);z-index:2;align-items:stretch;display:flex;position:sticky;top:0}.diagram-sidebar-site-group:first-child .diagram-sidebar-site-header-row{border-top:none}.diagram-sidebar-site-header{color:var(--color-text,#111);font-size:var(--text-xs,12px);text-align:left;letter-spacing:.02em;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:6px;padding:10px 12px 8px;font-weight:700;transition:background .12s;display:flex}.diagram-sidebar-site-header:hover{background:var(--bg-hover,#f9fafb)}.diagram-sidebar-site-add{border:none;border-left:1px solid var(--border-faint,#f1f5f9);color:var(--color-text-muted,#6b7280);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0 10px;transition:background .12s,color .12s;display:inline-flex}.diagram-sidebar-site-add:hover{background:var(--color-accent-bg,#dbeafe);color:var(--color-accent,#2563eb)}.diagram-sidebar-site-add:focus-visible{outline:2px solid var(--color-accent,#2563eb);outline-offset:-2px}.diagram-sidebar-site-header-row.collapsed .diagram-sidebar-site-header{color:var(--color-text-muted,#6b7280)}.diagram-sidebar-site-header:focus-visible{outline:2px solid var(--color-accent,#2563eb);outline-offset:-2px}.diagram-sidebar-site-chevron{width:14px;height:14px;color:var(--color-text-muted,#6b7280);justify-content:center;align-items:center;display:inline-flex}.diagram-sidebar-site-label{flex:1}.diagram-sidebar-site-count{background:var(--bg-app,#f3f4f6);min-width:22px;height:18px;color:var(--color-text-muted,#6b7280);border-radius:9999px;justify-content:center;align-items:center;padding:0 7px;font-family:ui-monospace,monospace;font-size:10px;font-weight:600;display:inline-flex}.diagram-sidebar-site-group.has-selected .diagram-sidebar-site-header{color:var(--color-accent-text,#1e40af)}.diagram-sidebar-site-group.has-selected .diagram-sidebar-site-count{background:var(--color-accent-bg,#dbeafe);color:var(--color-accent-text,#1e40af)}.diagram-sidebar-site-body{padding:0 0 4px}.diagram-sidebar-floor-group{display:block}.diagram-sidebar-site-body .diagram-sidebar-floor-header{color:var(--color-text-muted,#6b7280);letter-spacing:.06em;text-transform:uppercase;background:0 0;border-bottom:none;padding:6px 14px 3px;font-size:10px;font-weight:600;position:static}.diagram-sidebar-site-body .diagram-sidebar-floor-count{background:var(--bg-app,#f3f4f6);font-size:9px}.diagram-sidebar-card{border-radius:4px;margin:1px 6px;padding:8px 12px 8px 18px}.diagram-sidebar-card:hover{background:var(--bg-hover,#f3f4f6)}.diagram-sidebar-item.selected .diagram-sidebar-card{background:var(--color-accent-bg,#dbeafe);color:var(--color-accent-text,#1e40af);box-shadow:inset 3px 0 0 var(--color-accent,#2563eb);font-weight:600}.diagram-sidebar-count{background:var(--bg-app,#f3f4f6);color:var(--color-text-muted,#6b7280);border-radius:9999px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:10px;font-weight:600}.diagram-sidebar-item.selected .diagram-sidebar-count{background:var(--color-accent,#2563eb);color:#fff}.diagram-sidebar-count.empty{color:var(--color-text-faint,#9ca3af);font-family:inherit;font-size:9px;font-weight:400}@media (width<=640px){.diagram-sidebar-site-header{padding:8px 10px 6px;font-size:11px}.diagram-sidebar-site-count{min-width:18px;height:16px;font-size:9px}.diagram-sidebar-card{padding:6px 10px 6px 14px;font-size:12px}}.cable-edge-label.dimmed{opacity:.15;pointer-events:none}.cable-edge-label.dimmed .cable-edge-chip{border-color:var(--border-faint,#e5e7eb);box-shadow:none;color:var(--color-text-faint,#9ca3af)}.cable-edge-casing{fill:none;stroke:#0000;pointer-events:none}.flow-has-map .cable-edge-casing{stroke:#fff;stroke-opacity:.92}.flow-has-map .react-flow__node-equipmentNode,.flow-has-map .react-flow__node-textNode,.flow-has-map .react-flow__node-vdaNode{filter:drop-shadow(0 1px 3px #00000080)}.site-change-backdrop{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:24px;animation:.16s ease-out fadeIn;display:flex;position:fixed;inset:0}.site-change-modal{background:var(--bg-elevated,#fff);border-radius:var(--radius-lg,8px);flex-direction:column;width:100%;max-width:420px;animation:.2s ease-out slideUp;display:flex;box-shadow:0 20px 50px #00000040}.site-change-modal.exiting{animation:.2s ease-in forwards slideDown}.site-change-header{border-bottom:1px solid var(--border-default,#e5e7eb);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.site-change-header h2{font-size:var(--text-base,15px);color:var(--color-text,#111);align-items:center;gap:8px;margin:0;font-weight:600;display:inline-flex}.site-change-close{width:28px;height:28px;color:var(--color-text-muted,#6b7280);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.site-change-close:hover{background:var(--bg-hover,#f3f4f6)}.site-change-body{padding:16px 18px}.site-change-room{font-size:var(--text-sm,13px);color:var(--color-text-muted,#6b7280);margin:0 0 12px}.site-change-room strong{color:var(--color-text,#111)}.site-change-options{flex-direction:column;gap:4px;display:flex}.site-change-option{border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-sm,6px);cursor:pointer;align-items:center;gap:10px;padding:10px 12px;transition:background .12s,border-color .12s;display:flex}.site-change-option:hover{background:var(--bg-hover,#f9fafb)}.site-change-option.selected{background:var(--color-accent-bg,#dbeafe);border-color:var(--color-accent,#2563eb)}.site-change-option input[type=radio]{accent-color:var(--color-accent,#2563eb);margin:0}.site-change-option-label{font-size:var(--text-sm,13px);color:var(--color-text,#111);flex:1;font-weight:500}.site-change-option-hint{font-size:var(--text-xs,11px);color:var(--color-text-muted,#6b7280)}.site-change-custom-input{border:1px solid var(--color-accent,#2563eb);border-radius:var(--radius-sm,6px);font-size:var(--text-sm,13px);box-sizing:border-box;outline:none;width:100%;margin-top:8px;padding:8px 12px}.site-change-custom-input:focus{box-shadow:0 0 0 3px #2563eb26}.site-change-guest-toggle{border:1px dashed var(--border-default,#e5e7eb);border-radius:var(--radius-sm,6px);cursor:pointer;align-items:center;gap:10px;margin-top:10px;padding:10px 12px;display:flex}.site-change-guest-toggle:hover{background:var(--bg-hover,#f9fafb)}.site-change-guest-toggle input[type=checkbox]{accent-color:var(--color-accent,#2563eb);margin:0}.site-change-guest-toggle .site-change-option-label{flex:none}.site-change-guest-toggle .site-change-option-hint{text-align:right;flex:1}.site-change-guest-toggle.disabled{opacity:.55;cursor:not-allowed}.site-change-guest-toggle.disabled:hover{background:0 0}.site-change-footer{border-top:1px solid var(--border-default,#e5e7eb);background:var(--bg-app,#fafafa);border-radius:0 0 var(--radius-lg,8px) var(--radius-lg,8px);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.site-change-footer .btn-outline,.site-change-footer .btn-primary{border-radius:var(--radius-sm,6px);font-size:var(--text-xs,12px);cursor:pointer;align-items:center;gap:4px;padding:7px 14px;font-weight:600;display:inline-flex}.site-change-footer .btn-outline{border:1px solid var(--border-default,#d1d5db);color:var(--color-text,#111);background:0 0}.site-change-footer .btn-outline:hover{background:var(--bg-hover,#f3f4f6)}.site-change-footer .btn-primary{border:1px solid var(--color-accent,#2563eb);background:var(--color-accent,#2563eb);color:#fff}.site-change-footer .btn-primary:hover:not(:disabled){filter:brightness(1.05)}.site-change-footer .btn-primary:disabled{opacity:.45;cursor:not-allowed}@media (width<=640px){.site-change-backdrop{align-items:flex-end;padding:0}.site-change-modal{border-radius:var(--radius-lg,8px) var(--radius-lg,8px) 0 0;max-width:100%;margin-bottom:calc(80px + env(safe-area-inset-bottom,0px))}}.diagram-sidebar-add-site{border:1px solid var(--border-default,#d1d5db);border-radius:var(--radius-sm,6px);background:var(--bg-elevated,#fff);color:var(--color-text-muted,#6b7280);cursor:pointer;align-items:center;gap:3px;padding:4px 8px;font-size:11px;font-weight:600;transition:background .12s,color .12s;display:inline-flex}.diagram-sidebar-add-site:hover{background:var(--color-accent-bg,#dbeafe);color:var(--color-accent,#2563eb);border-color:var(--color-accent,#2563eb)}.diagram-sidebar-site-menu-wrap{align-items:stretch;display:inline-flex;position:relative}.diagram-sidebar-site-more{border:none;border-left:1px solid var(--border-faint,#f1f5f9);color:var(--color-text-muted,#6b7280);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0 8px;transition:background .12s,color .12s;display:inline-flex}.diagram-sidebar-site-more:hover{background:var(--bg-hover,#f3f4f6);color:var(--color-text,#111)}.diagram-sidebar-site-more:focus-visible{outline:2px solid var(--color-accent,#2563eb);outline-offset:-2px}.diagram-sidebar-site-menu{background:var(--bg-elevated,#fff);border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-sm,6px);z-index:10;flex-direction:column;min-width:160px;margin-top:2px;padding:4px;display:flex;position:absolute;top:100%;right:0;box-shadow:0 6px 16px #0000001f}.diagram-sidebar-site-menu button{color:var(--color-text,#111);font-size:var(--text-xs,12px);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;padding:8px 10px;transition:background .12s;display:inline-flex}.diagram-sidebar-site-menu button:hover{background:var(--bg-hover,#f3f4f6)}.diagram-sidebar-site-menu button.danger{color:#b91c1c}.diagram-sidebar-site-menu button.danger:hover{background:#fee2e2}.diagram-sidebar-rail{flex-direction:column;align-items:center;gap:5px;max-height:calc(100vh - 80px);padding:8px 0;display:flex;overflow:hidden auto}.diagram-sidebar-rail-dot{border:1.5px solid var(--border-default,#d1d5db);cursor:pointer;background:0 0;border-radius:50%;flex:none;width:8px;height:8px;padding:0;transition:transform .12s,border-color .12s,background .12s}.diagram-sidebar-rail-dot:hover{border-color:var(--color-accent,#2563eb);transform:scale(1.6)}.diagram-sidebar-rail-dot.selected{background:var(--color-accent,#2563eb);border-color:var(--color-accent,#2563eb);transform:scale(1.4)}.diagram-sidebar-rail-dot:focus-visible{outline:2px solid var(--color-accent,#2563eb);outline-offset:2px}@media (width<=640px){.diagram-sidebar-site-more,.diagram-sidebar-site-add{min-width:44px;min-height:36px;padding:0 12px}.diagram-sidebar.collapsed .diagram-sidebar-rail{display:none}}.diagram-sidebar-site-menu-divider{background:var(--border-faint,#f1f5f9);height:1px;margin:4px 6px}.diagram-sidebar-site-more{min-width:32px}body>.diagram-sidebar-site-menu{z-index:1100}.diagram-sidebar-add-site-row{border-top:1px solid var(--border-faint,#f1f5f9);margin-top:4px;padding:8px 12px 12px;list-style:none}.diagram-sidebar-add-site-link{border:1px dashed var(--border-default,#d1d5db);border-radius:var(--radius-sm,6px);width:100%;color:var(--color-text-muted,#6b7280);font-size:var(--text-xs,11px);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:6px;padding:6px 8px;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.diagram-sidebar-add-site-link:hover{background:var(--color-accent-bg,#dbeafe);color:var(--color-accent,#2563eb);border-color:var(--color-accent,#2563eb);border-style:solid}.diagram-sidebar-add-site-link:focus-visible{outline:2px solid var(--color-accent,#2563eb);outline-offset:1px}.room-add-backdrop{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:24px;animation:.16s ease-out fadeIn;display:flex;position:fixed;inset:0}.room-add-modal{background:var(--bg-elevated,#fff);border-radius:var(--radius-lg,8px);flex-direction:column;width:100%;max-width:480px;animation:.2s ease-out slideUp;display:flex;box-shadow:0 20px 50px #00000040}.room-add-modal.exiting{animation:.2s ease-in forwards slideDown}.room-add-header{border-bottom:1px solid var(--border-default,#e5e7eb);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.room-add-header h2{font-size:var(--text-base,15px);color:var(--color-text,#111);align-items:center;gap:8px;margin:0;font-weight:600;display:inline-flex}.room-add-close{width:28px;height:28px;color:var(--color-text-muted,#6b7280);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.room-add-close:hover{background:var(--bg-hover,#f3f4f6)}.room-add-body{flex-direction:column;gap:16px;padding:16px 18px;display:flex}.room-add-field{flex-direction:column;gap:6px;display:flex}.room-add-label{font-size:var(--text-xs,12px);color:var(--color-text,#111);font-weight:600}.room-add-label-hint{color:var(--color-text-muted,#6b7280);margin-left:4px;font-weight:400}.room-add-site-options{flex-wrap:wrap;gap:4px;display:flex}.room-add-site-option{border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-sm,6px);font-size:var(--text-xs,12px);cursor:pointer;align-items:center;gap:5px;padding:6px 10px;transition:background .12s,border-color .12s;display:inline-flex}.room-add-site-option:hover{background:var(--bg-hover,#f9fafb)}.room-add-site-option.selected{background:var(--color-accent-bg,#dbeafe);border-color:var(--color-accent,#2563eb);color:var(--color-accent-text,#1e40af);font-weight:600}.room-add-site-option input[type=radio]{accent-color:var(--color-accent,#2563eb);margin:0}.room-add-input{border:1px solid var(--border-default,#d1d5db);border-radius:var(--radius-sm,6px);font-size:var(--text-sm,13px);background:var(--bg-input,#fff);box-sizing:border-box;outline:none;width:100%;padding:8px 12px}.room-add-input:focus{border-color:var(--color-accent,#2563eb);box-shadow:0 0 0 3px #2563eb1f}.room-add-footer{border-top:1px solid var(--border-default,#e5e7eb);background:var(--bg-app,#fafafa);border-radius:0 0 var(--radius-lg,8px) var(--radius-lg,8px);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.room-add-footer .btn-outline,.room-add-footer .btn-primary{border-radius:var(--radius-sm,6px);font-size:var(--text-xs,12px);cursor:pointer;align-items:center;gap:4px;padding:7px 14px;font-weight:600;display:inline-flex}.room-add-footer .btn-outline{border:1px solid var(--border-default,#d1d5db);color:var(--color-text,#111);background:0 0}.room-add-footer .btn-outline:hover{background:var(--bg-hover,#f3f4f6)}.room-add-footer .btn-primary{border:1px solid var(--color-accent,#2563eb);background:var(--color-accent,#2563eb);color:#fff}.room-add-footer .btn-primary:hover:not(:disabled){filter:brightness(1.05)}.room-add-footer .btn-primary:disabled{opacity:.45;cursor:not-allowed}@media (width<=640px){.room-add-backdrop{align-items:flex-end;padding:0}.room-add-modal{border-radius:var(--radius-lg,8px) var(--radius-lg,8px) 0 0;max-width:100%;margin-bottom:calc(80px + env(safe-area-inset-bottom,0px))}}.map-image-node{border-radius:var(--radius-sm,6px);width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 0 0 1px #0f172a1f}.react-flow__node.selected .map-image-node{box-shadow:0 0 0 2px var(--color-accent,#2563eb)}.map-image-node.locked{cursor:default}.map-image-lock-badge{top:var(--space-2,6px);right:var(--space-2,6px);border-radius:var(--radius-full,999px);width:20px;height:20px;color:var(--color-text-muted,#64748b);pointer-events:none;background:#ffffffe6;justify-content:center;align-items:center;display:inline-flex;position:absolute;box-shadow:0 1px 3px #0f172a40}.measure-path-node{pointer-events:none;position:relative}.measure-path-node svg{display:block;overflow:visible}.measure-path-node .measure-path-line{pointer-events:stroke;cursor:grab}.measure-path-chip{align-items:center;gap:var(--space-2,6px);padding:2px var(--space-3,8px);pointer-events:all;border-radius:var(--radius-pill,999px);font-size:var(--text-xs,11px);font-weight:var(--weight-semibold,600);white-space:nowrap;cursor:grab;background:#fffffff2;border:1.5px solid;display:inline-flex;position:absolute;transform:translate(-50%,-130%);box-shadow:0 1px 4px #0f172a2e}.measure-path-chip .measure-path-label{color:var(--color-text,#111)}.measure-path-chip .measure-path-dist{font-variant-numeric:tabular-nums}.map-mode-banner{z-index:20;align-items:center;gap:var(--space-3,8px);padding:var(--space-2,6px) var(--space-4,12px);background:var(--color-accent-50,#eff6ff);border:1px solid var(--color-accent-300,#93c5fd);border-radius:var(--radius-pill,999px);font-size:var(--text-sm,13px);font-weight:var(--weight-semibold,600);color:var(--color-accent-700,#1d4ed8);white-space:nowrap;display:flex;position:absolute;top:52px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0f172a1f}.map-mode-banner button{padding:3px var(--space-3,10px);border:1px solid var(--color-accent,#2563eb);border-radius:var(--radius-pill,999px);background:var(--color-accent,#2563eb);color:var(--color-text-on-accent,#fff);font-size:var(--text-xs,12px);font-weight:var(--weight-semibold,600);cursor:pointer}.map-mode-banner button:disabled{opacity:.45;cursor:not-allowed}.map-mode-banner button.ghost{color:var(--color-accent-700,#1d4ed8);border-color:var(--color-accent-300,#93c5fd);background:0 0}@media (width<=640px){.map-mode-banner{white-space:normal;width:max-content;max-width:calc(100vw - 32px)}}.node-search-overlay{z-index:19;background:var(--bg-panel,#fff);border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-lg,10px);width:260px;font-size:var(--text-sm,13px);position:absolute;top:12px;left:12px;box-shadow:0 6px 20px #0000001a}.node-search-input-row{color:var(--color-text-muted,#6b7280);align-items:center;gap:6px;padding:8px 8px 8px 10px;display:flex}.node-search-input-row input{min-width:0;font-size:var(--text-sm,13px);color:var(--color-text,#111);background:0 0;border:none;outline:none;flex:1}.node-search-close{color:var(--color-text-muted,#6b7280);border-radius:var(--radius-sm,6px);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:inline-flex}.node-search-close:hover{background:var(--bg-hover,#f3f4f6);color:var(--color-text,#111)}.node-search-results{border-top:1px solid var(--border-default,#e5e7eb);max-height:280px;margin:0;padding:4px;list-style:none;overflow-y:auto}.node-search-result{border-radius:var(--radius-sm,6px);width:100%;font-size:var(--text-sm,13px);color:var(--color-text,#111);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;display:flex}.node-search-result.active{background:var(--color-accent-50,#eff6ff);color:var(--color-accent-700,#1d4ed8)}.node-search-result-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.node-search-empty{color:var(--color-text-muted,#6b7280);font-size:var(--text-xs,12px);padding:8px 10px}.react-flow__node.node-search-hit{border-radius:8px;animation:.9s ease-in-out 2 node-search-pulse}@keyframes node-search-pulse{0%,to{box-shadow:0 0 #2563eb00}50%{box-shadow:0 0 0 6px #2563eb73}}@media (width<=640px){.node-search-overlay{width:calc(100vw - 24px);max-width:300px}}.node-detail-fieldset{border:none;min-width:0;margin:0;padding:0;display:contents}.cable-edge-actions{background:var(--bg-panel,#fff);border:1px solid var(--border-default,#e5e7eb);border-radius:var(--radius-pill,9999px);z-index:20;gap:2px;padding:3px;display:inline-flex;box-shadow:0 3px 10px #0000001f}.cable-edge-actions button{border-radius:var(--radius-pill,9999px);width:26px;height:26px;color:var(--color-text-muted,#6b7280);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.cable-edge-actions button:hover{background:var(--bg-hover,#f3f4f6);color:var(--color-text,#111)}.cable-edge-actions button.danger:hover{color:#dc2626;background:#fef2f2}@media print{.app-header,.app-mode-tabs,.app-mobile-menu-toggle,.app-search-bar,.view-controls,.react-flow__controls,.react-flow__minimap,.react-flow__attribution,.blueprint-zoom-controls,.toast-stack,.kbd-modal-backdrop,.modal-backdrop{display:none!important}html,body{color:#000!important;background:#fff!important}.react-flow,.react-flow__viewport,.blueprint-container,.blueprint-canvas{background:#fff!important}.blueprint-image{filter:none!important}.hotspot-label{color:#000!important;background:#ffffffd9!important}.blueprint-hotspot{box-shadow:none!important;background:0 0!important;border-color:#0006!important}@page blueprint-print{margin:1cm}.rcp-page{page:blueprint-print}}.system-overview{padding:var(--space-8);color:#e2e8f0;flex:1;overflow-y:auto}.overview-stats{gap:var(--space-4);margin-bottom:var(--space-10);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.stat-card{border-radius:var(--radius-lg);padding:var(--space-6) var(--space-4);text-align:center;background:#ffffff0f;border:1px solid #ffffff1a}.stat-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:#60a5fa}.stat-label{font-size:var(--text-xs);color:var(--color-text-faint);margin-top:var(--space-1)}.overview-section-title{font-size:var(--text-sm);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 8px}.signal-distribution{gap:var(--space-2);margin-bottom:var(--space-6);flex-direction:column;display:flex}.signal-dist-row{align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:#e2e8f0;display:flex}.signal-dot{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-full);flex-shrink:0}.signal-dist-label{flex:1}.signal-dist-count{color:var(--color-text-faint);font-size:var(--text-xs)}.zone-list{gap:var(--space-2);flex-direction:column;display:flex}.zone-list-item{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);color:#e2e8f0;font-size:var(--text-sm);cursor:pointer;transition:background var(--t-base);text-align:left;background:#ffffff0d;border:1px solid #ffffff1a;width:100%;display:flex}.zone-list-item:hover,.zone-list-item:focus-visible{background:#ffffff1f}.zone-floor{font-weight:var(--weight-bold);color:#60a5fa;min-width:var(--space-14)}.zone-name{flex:1}.zone-equip-count{color:var(--color-text-faint);font-size:var(--text-xs)}.zone-style-core .zone-floor{color:var(--accent-500)}.zone-style-external .zone-floor{color:var(--violet-500)}.zone-style-production .zone-floor{color:var(--cyan-500)}.daily-report-page{background:var(--bg-app);flex-direction:column;height:100%;display:flex}@media (width<=640px){.daily-report-page{height:auto;min-height:100%}.daily-report-page>.dr-body{flex:none;overflow:visible}.daily-report-page>.dr-body>.dr-list,.daily-report-page>.dr-body>.dr-detail{height:auto;overflow:visible}}.dr-header{padding:var(--space-7) var(--space-12) var(--space-5);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.dr-header h2{align-items:center;gap:var(--space-4);font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);display:flex}.dr-header-right{align-items:center;gap:var(--space-4);display:flex}.dr-count{font-size:var(--text-sm);color:var(--color-text-muted);background:var(--border-default);border-radius:var(--radius-xl);padding:var(--space-1) var(--space-5)}.dr-upload-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dr-upload-modal{background:var(--bg-app);border-radius:var(--radius-xl);width:520px;max-width:94vw;box-shadow:var(--shadow-xl);flex-direction:column;display:flex;overflow:hidden}.dr-upload-head{padding:var(--space-7) var(--space-10);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.dr-upload-head h2{align-items:center;gap:var(--space-4);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text);margin:0;display:inline-flex}.dr-upload-close{cursor:pointer;color:var(--color-text-muted);padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;display:inline-flex}.dr-upload-close:hover:not(:disabled),.dr-upload-close:focus-visible:not(:disabled){background:var(--bg-panel);color:var(--color-text)}.dr-upload-close:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.dr-upload-body{padding:var(--space-9) var(--space-10);gap:var(--space-7);flex-direction:column;display:flex}.dr-upload-fields{gap:var(--space-5);grid-template-columns:1.4fr 1fr .8fr;display:grid}.dr-upload-fields label{gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);flex-direction:column;display:flex}.dr-upload-fields select{border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--input-pad-y-sm) var(--input-pad-x-sm);font-size:var(--text-base);background:var(--bg-app);color:var(--color-text);outline:none}.dr-upload-fields select:focus{border-color:var(--color-accent)}.dr-upload-fields select:disabled{background:var(--bg-panel);color:var(--color-text-faint)}.dr-upload-fields small{font-size:var(--text-2xs);color:var(--color-text-faint)}.dr-upload-path{padding:var(--space-4) var(--space-6);background:var(--bg-panel);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text-muted)}.dr-upload-path code{color:var(--color-text);font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:var(--text-xs);background:0 0}.dr-upload-drop{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-14) var(--space-8);align-items:center;gap:var(--space-3);cursor:pointer;transition:border-color var(--t-base), background var(--t-base);color:var(--color-text-muted);text-align:center;flex-direction:column;display:flex}.dr-upload-drop:hover,.dr-upload-drop:focus-visible,.dr-upload-drop.over{border-color:var(--color-accent);color:var(--color-accent);background:#2563eb0a}.dr-upload-drop.has-file{border-style:solid;border-color:var(--color-success);background:var(--bg-success);color:var(--green-800)}.dr-upload-drop p{font-size:var(--text-md);color:var(--color-text);margin:0}.dr-upload-drop.has-file p{color:var(--green-800)}.dr-upload-drop span{font-size:var(--text-xs);color:var(--color-text-faint)}.dr-upload-error{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);background:var(--red-50);border:1px solid var(--red-200);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-danger);display:flex}.dr-upload-actions{padding:var(--space-6) var(--space-10);border-top:1px solid var(--border-default);background:var(--bg-panel);justify-content:space-between;align-items:center;display:flex}.dr-upload-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.dr-upload-foot{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-default);background:var(--bg-panel);display:flex}.dr-upload-foot button{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);min-height:var(--tap-min);font-size:var(--text-sm);color:var(--color-text);background:var(--bg-app);border:1px solid var(--border-strong);border-radius:var(--radius-md);cursor:pointer;font-family:inherit;display:inline-flex}.dr-upload-foot button:hover:not(:disabled){background:var(--bg-hover)}.dr-upload-foot button:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.dr-upload-foot button.primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--bg-app)}.dr-upload-foot button.primary:hover:not(:disabled){filter:brightness(1.06);background:var(--color-accent)}@media (width<=640px){.dr-upload-backdrop{align-items:flex-end}.dr-upload-modal{border-radius:var(--radius-2xl) 12px 0 0;width:100%;max-width:100%}.dr-upload-head{padding:var(--space-6) var(--space-7)}.dr-upload-body{padding:var(--space-7);gap:var(--space-6)}.dr-upload-fields{gap:var(--space-6);grid-template-columns:1fr}.dr-upload-fields select{font-size:var(--text-lg);padding:var(--space-5) var(--space-4)}.dr-upload-drop{padding:var(--space-8)}.dr-upload-actions{gap:var(--space-4);flex-direction:column-reverse}.dr-upload-actions .btn{width:100%;min-height:var(--tap-min)}}.dr-drafts-banner{align-items:center;gap:var(--space-6);padding:var(--space-4) var(--space-8);margin:var(--space-3) var(--space-12) var(--space-4);background:var(--bg-warning);border:1px solid color-mix(in srgb, var(--color-warning) 30%, transparent);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text);flex-wrap:wrap;display:flex}.dr-drafts-banner-head{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-weight:var(--weight-semibold);flex-shrink:0;display:inline-flex}.dr-drafts-banner-list{align-items:center;gap:var(--space-3);flex-wrap:wrap;flex:auto;display:flex}.dr-drafts-banner-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast);display:inline-flex}.dr-drafts-banner-item:hover,.dr-drafts-banner-item:focus-visible{border-color:var(--color-accent);background:var(--bg-panel)}.dr-drafts-banner-meta,.dr-drafts-banner-more{color:var(--color-text-muted);font-size:var(--text-xs)}@media (width<=640px){.dr-drafts-banner{margin:var(--space-3) var(--space-6) var(--space-4)}}.dr-tabs{gap:var(--space-2);padding:var(--space-4) var(--space-12);border-bottom:1px solid var(--border-default);opacity:1;max-height:60px;transition:max-height var(--t-slow), opacity var(--t-slow), padding var(--t-slow), border-color var(--t-slow);display:flex;overflow-x:auto}@media (width<=640px){.dr-tabs{padding:var(--space-4) var(--space-6);flex-wrap:nowrap;overflow-x:auto}.dr-tabs>*{flex:none}}.dr-tabs.collapsed{opacity:0;pointer-events:none;border-bottom-color:#0000;max-height:0;padding-top:0;padding-bottom:0;overflow:hidden}.dr-tab{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-7);border:1px solid var(--border-default);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:all var(--t-base);background:0 0;border-radius:20px;display:flex}.dr-tab:hover,.dr-tab:focus-visible{background:var(--bg-hover);color:var(--color-text)}.dr-tab.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.dr-tab-dot{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-full);flex-shrink:0;display:inline-block}.dr-body{flex:1;display:flex;overflow:hidden}.dr-list{border-right:1px solid var(--border-default);flex-direction:column;width:360px;min-width:300px;display:flex;overflow-y:auto}.dr-search{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-default);color:var(--color-text-muted);flex-shrink:0;display:flex}.dr-search input{color:var(--color-text);font-size:var(--text-sm);background:0 0;border:none;outline:none;flex:1}.dr-search input::placeholder{color:var(--color-text-muted)}.dr-search-clear{color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-xs);background:0 0;border:none;display:flex}.dr-search-clear:hover,.dr-search-clear:focus-visible{color:var(--color-text);background:var(--bg-hover)}.dr-month-group{padding:0 var(--space-4);content-visibility:auto;contain-intrinsic-size:auto 560px}.dr-month-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px;padding:var(--space-5) var(--space-3) var(--space-2);background:var(--bg-app);z-index:1;border-bottom:1px solid var(--border-default);margin-bottom:var(--space-2);position:sticky;top:0}.dr-list:focus{outline:none}.dr-month-toggle{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-4) var(--space-3);cursor:pointer;text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;display:flex}.dr-month-toggle:hover,.dr-month-toggle:focus-visible{background:var(--bg-hover)}.dr-month-meta{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-normal);margin-left:auto}.kbd-focusable:focus{outline:none}.kbd-focusable:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.dr-day-group{margin-bottom:var(--space-4)}.dr-day-label{align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);padding:var(--space-3) var(--space-4) var(--space-2);border-bottom:1px dashed var(--border-default);margin-bottom:var(--space-2);display:flex}.dr-day-count{padding:1px var(--space-3);background:var(--accent-glow-mid);color:var(--color-accent);border-radius:var(--radius-lg);font-size:var(--text-3xs);font-weight:var(--weight-semibold);margin-left:auto}.dr-card{padding:var(--space-5) var(--space-6);border-radius:var(--radius-lg);margin-bottom:var(--space-1);cursor:pointer;transition:all var(--t-base);border:1px solid #0000}.dr-card:hover,.dr-card:focus-visible{background:var(--bg-hover)}.dr-card.active{background:var(--bg-selected);border-color:var(--color-accent)}.dr-card-header{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.dr-card-member{align-items:center;gap:var(--space-3);font-weight:var(--weight-semibold);font-size:var(--text-base);color:var(--color-text);display:flex}.dr-card-avatar{width:var(--space-10);height:var(--space-10);border-radius:var(--radius-full);background:var(--color-accent);color:#fff;font-size:var(--text-3xs);font-weight:var(--weight-bold);justify-content:center;align-items:center;display:inline-flex}.dr-card-date{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);display:flex}.dr-card-meta{align-items:center;gap:var(--space-3);display:flex}.dr-card-filename{font-size:var(--text-3xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dr-card-pdf-badge{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-danger);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);background:#ef444414;flex-shrink:0}.dr-card-web-badge{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-accent);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);background:#3b82f61a;flex-shrink:0}.dr-visibility-badge{align-items:center;gap:var(--space-1);font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-warning);background:var(--bg-warning);border:1px solid color-mix(in srgb, var(--color-warning) 30%, transparent);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);white-space:nowrap;vertical-align:middle;flex-shrink:0;display:inline-flex}.dr-visibility-badge svg{flex-shrink:0}.dr-card.dr-card-web{background:linear-gradient(90deg,#3b82f60a,#0000 24px)}.dr-card.dr-card-web:before{content:"";top:var(--space-4);right:var(--space-4);width:var(--space-3);height:var(--space-3);border-radius:var(--radius-full);background:var(--color-accent);opacity:.7;pointer-events:none;position:absolute}.dr-card{position:relative}.dr-detail{flex-direction:column;flex:1;display:flex;overflow:hidden}.dr-detail-empty{justify-content:center;align-items:center;gap:var(--space-6);color:var(--color-text-muted);flex-direction:column;flex:1;display:flex}.dr-detail-empty p{font-size:var(--text-md)}.dr-detail-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3) 0;padding:var(--space-7) var(--space-10) var(--space-5);border-bottom:1px solid var(--border-default);flex-wrap:wrap;flex-shrink:0;display:flex}.dr-detail-header h3{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text)}.dr-detail-filename{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1)}.dr-detail-actions{gap:var(--space-3);flex-shrink:0;display:flex}.dr-detail-actions a.btn{text-decoration:none}.dr-detail-body{flex-direction:column;flex:1;display:flex;overflow:hidden}.dr-detail-title-wrap{flex:1;min-width:12rem}.dr-detail-back{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4) var(--space-2) var(--space-2);margin-right:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-base);cursor:pointer;background:0 0;flex-shrink:0;display:inline-flex}.dr-detail-back:hover,.dr-detail-back:focus-visible{background:var(--border-default)}.dr-detail-nav{gap:var(--space-1);margin-right:var(--space-3);flex-shrink:0;display:inline-flex}.dr-detail-nav-btn{min-width:var(--space-16);min-height:var(--space-16);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.dr-detail-nav-btn:hover:not(:disabled),.dr-detail-nav-btn:focus-visible{background:var(--border-default)}.dr-detail-nav-btn:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}@media (width<=640px){.dr-header{padding:var(--space-5) var(--space-6) var(--space-4);gap:var(--space-4);row-gap:var(--space-3);flex-wrap:wrap}.dr-header h2{font-size:var(--text-md);gap:var(--space-3);white-space:nowrap;text-overflow:ellipsis;flex:100%;min-width:0;overflow:hidden}.dr-count{display:none}.dr-header-right{gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end}.dr-header-right .dr-panel-action-secondary,.dr-header-right .dr-panel-action-divider{display:none}.dr-tabs{padding:var(--space-3) var(--space-6)}.dr-header-right .btn,.dr-month-row button{min-height:var(--space-18)}:is(.daily-report-page:has(.dr-body--detail-open)>.dr-header,.daily-report-page:has(.dr-body--detail-open)>.dr-tabs){display:none}.dr-body{position:relative}.dr-body .dr-list{border-right:none;width:100%;min-width:0}.dr-card{min-height:52px;padding:var(--space-6)}.dr-card:active{background:var(--bg-selected)}.dr-body .dr-detail,.dr-body--detail-open .dr-list{display:none}.dr-body--detail-open .dr-detail{width:100%;display:flex}.dr-body--important .dr-list{display:none}.dr-body--important .dr-detail{width:100%;display:flex}.ui-search-sm.dr-search .ui-search-input{font-size:var(--text-lg)}.dr-detail-back{min-height:var(--space-18);flex-shrink:0;display:inline-flex}.dr-detail-header{padding:var(--space-5) var(--space-6) var(--space-4);gap:var(--space-4);flex-wrap:wrap;justify-content:flex-start;align-items:center}.dr-detail-title-wrap{flex:auto;min-width:0}.dr-detail-header h3{font-size:var(--text-base);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dr-detail-filename{font-size:var(--text-3xs);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dr-detail-actions{flex-wrap:wrap;flex-basis:100%}}.dr-pdf-viewer{border:none;flex:1;width:100%}.dr-pdf-mobile-fallback{justify-content:center;align-items:center;gap:var(--space-7);padding:var(--space-16) var(--space-8);color:var(--color-text-muted);text-align:center;flex-direction:column;flex:1;display:flex}.dr-pdf-mobile-fallback p{font-size:var(--text-base);line-height:var(--leading-normal);margin:0}.dr-pdf-mobile-open-btn{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-9);border-radius:var(--radius-md);background:var(--color-accent);color:var(--color-text-on-accent);font-size:var(--text-md);font-weight:var(--weight-medium);text-decoration:none;display:inline-flex}.dr-pdf-mobile-open-btn:active{opacity:.85}.dr-pdf-mobile-open-btn[type=button]{cursor:pointer;border:none;font-family:inherit}.dr-pdf-mobile-secondary-btn{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);border:1px solid var(--border-default);background:0 0;text-decoration:none;display:inline-flex}.dr-pdf-mobile-secondary-btn:active{opacity:.7}.dr-view-btn-discouraged{opacity:.85;border-style:dashed}.dr-content{font-family:Pretendard Variable,Pretendard,Inter,sans-serif;font-size:var(--text-base);color:var(--color-text);white-space:pre-wrap;word-break:break-word;padding:var(--space-8) var(--space-10);flex:1;line-height:1.7;overflow-y:auto}.dr-converting{justify-content:center;align-items:center;gap:var(--space-6);color:var(--color-text-muted);flex-direction:column;flex:1;display:flex}.dr-converting p{font-size:var(--text-base)}.dr-convert-slow-hint{color:var(--color-text-faint);text-align:center;max-width:320px;font-size:var(--text-sm)!important}.dr-convert-error{justify-content:center;align-items:center;gap:var(--space-5);padding:var(--space-20) var(--space-10);color:var(--color-text-muted);flex-direction:column;flex:1;display:flex}.dr-convert-error svg{color:var(--color-warning)}.dr-convert-error-title{font-size:var(--text-md);font-weight:var(--weight-semibold);margin:var(--space-2) 0 0}.dr-convert-error-msg{font-size:var(--text-sm);color:var(--color-text-faint);text-align:center;max-width:360px;margin:0}.dr-convert-error-actions{gap:var(--space-4);margin-top:var(--space-4);display:flex}.dr-convert-warning{align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-7);margin:0 0 var(--space-5);background:var(--orange-50);border:1px solid var(--orange-300);border-radius:var(--radius-md);color:var(--orange-800);font-size:var(--text-sm);line-height:var(--leading-normal);display:flex}.dr-convert-warning svg{color:var(--orange-600);flex-shrink:0}.dr-convert-warning-text{flex:1;min-width:0}.dr-convert-warning-text strong{font-weight:var(--weight-semibold)}.dr-convert-warning-btn{flex-shrink:0}.dr-loading,.dr-empty{text-align:center;padding:var(--space-20) var(--space-10);color:var(--color-text-muted);font-size:var(--text-base)}.dr-loading-skeleton{gap:var(--space-10);padding:var(--space-10) var(--space-8);flex-direction:column;display:flex}.dr-empty-hint{margin-top:var(--space-5);font-size:var(--text-sm);color:var(--color-text-faint);line-height:var(--leading-normal)}@keyframes spin{to{transform:rotate(360deg)}}.maint-stats-page{padding:var(--space-10) var(--space-12) var(--space-20);box-sizing:border-box;max-width:1400px;height:100%;margin:0 auto;overflow:hidden auto}.maint-chart-hint{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-normal)}@media (width<=640px){.maint-chart-hint{font-size:var(--text-2xs)}.maint-hub-label{display:none!important}}.maint-stats-header{align-items:center;gap:var(--space-6);margin-bottom:var(--space-10);display:flex}.maint-error{padding:var(--space-6) var(--space-8);color:var(--color-danger);border-radius:var(--radius-md);margin-bottom:var(--space-8);font-size:var(--text-base);background:#ef44441a}.maint-loading{justify-content:center;align-items:center;gap:var(--space-4);padding:60px var(--space-10);color:var(--color-text-muted);font-size:var(--text-base);display:flex}.maint-summary-grid{gap:var(--space-6);margin-bottom:var(--space-12);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}@media (width<=640px){.maint-summary-grid{grid-template-columns:repeat(2,1fr)}}.maint-card{padding:var(--space-7) var(--space-8);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md)}.maint-card-clickable{text-align:left;cursor:pointer;width:100%;transition:background .12s,box-shadow .12s}.maint-card-clickable:hover{background:var(--bg-hover)}.maint-card-clickable.active{background:var(--accent-glow-mid);box-shadow:inset 0 0 0 1px var(--color-accent)}.maint-card-clickable:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.maint-originals{gap:var(--space-2);flex-direction:column;display:flex}.maint-original-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-app);color:var(--color-text);text-decoration:none;transition:background .12s;display:flex}.maint-original-item:hover{background:var(--bg-hover)}.maint-original-icon{color:var(--color-success);flex-shrink:0}.maint-original-month{font-weight:var(--weight-semibold);flex-shrink:0;min-width:2.8em}.maint-original-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);color:var(--color-text-muted);flex:1;overflow:hidden}.maint-original-meta{font-size:var(--text-xs);color:var(--color-text-muted);flex-shrink:0;margin-left:auto}.maint-original-dl{color:var(--color-text-muted);flex-shrink:0}.maint-originals-section{margin:var(--space-4) 0;border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);background:var(--bg-panel)}.maint-originals-section>summary{cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);-webkit-user-select:none;user-select:none}.maint-originals-section[open]>summary{margin-bottom:var(--space-4)}.maint-original-item.active{background:var(--accent-glow-mid);border-color:var(--color-accent)}.maint-archive-body{gap:var(--space-6);align-items:flex-start;display:flex}.maint-archive-list{flex:0 0 300px;min-width:0}.maint-archive-preview{flex:1 1 0;min-width:0}@media (width<=768px){.maint-archive-body{flex-direction:column}.maint-archive-list{flex:none;width:100%}.maint-archive-preview{width:100%}}.maint-xlsx-preview{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-app);overflow:hidden}.maint-xlsx-bar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-default);background:var(--bg-panel);flex-wrap:wrap;display:flex}.maint-xlsx-tabs{gap:var(--space-2);flex-wrap:wrap;display:flex}.maint-xlsx-tab{border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);cursor:pointer;color:var(--color-text-muted);background:0 0}.maint-xlsx-tab.active{background:var(--accent-glow-mid);border-color:var(--color-accent);color:var(--color-text);font-weight:var(--weight-medium)}.maint-xlsx-dl{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-accent);white-space:nowrap;margin-left:auto;text-decoration:none;display:inline-flex}.maint-xlsx-scroll{max-height:70vh;overflow:auto}.maint-xlsx-table{border-collapse:collapse;font-size:var(--text-xs);table-layout:fixed}.maint-xlsx-table td{border:1px solid var(--border-default);padding:var(--space-2) var(--space-3);color:var(--color-text);vertical-align:top;white-space:normal;word-break:keep-all;overflow-wrap:break-word}.maint-xlsx-table td.num{text-align:right;white-space:nowrap;word-break:normal;font-variant-numeric:tabular-nums}.maint-xlsx-table tr:nth-child(2n) td{background:var(--bg-panel)}.maint-xlsx-table tr.hdr td{background:var(--bg-hover);font-weight:var(--weight-semibold);color:var(--color-text);z-index:1;white-space:nowrap;position:sticky;top:0}.maint-recent{flex-direction:column;height:100%;display:flex}.maint-recent-state{padding:var(--space-6);color:var(--color-text-muted);font-size:var(--text-sm);align-items:center;gap:var(--space-2);display:flex}.maint-recent-list{flex:1;margin:0;padding:0;list-style:none;overflow:auto}.maint-recent-item{align-items:center;gap:var(--space-3);text-align:left;border:none;border-bottom:1px solid var(--border-default);width:100%;padding:var(--space-3) var(--space-4);cursor:pointer;font:inherit;color:var(--color-text);background:0 0;display:flex}.maint-recent-item:hover{background:var(--bg-hover)}.maint-recent-desc{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);flex:1;overflow:hidden}.maint-recent-meta{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.maint-recent-more{align-self:flex-end;align-items:center;gap:var(--space-1);color:var(--color-accent);cursor:pointer;font-size:var(--text-xs);padding:var(--space-3) var(--space-4);background:0 0;border:none;display:inline-flex}.maint-tl-year{margin-bottom:var(--space-8)}.maint-tl-year-head{font-size:var(--text-md);font-weight:var(--weight-semibold);margin:0 0 var(--space-4);padding-bottom:var(--space-2);border-bottom:2px solid var(--border-default)}.maint-tl-year-count{font-size:var(--text-xs);font-weight:var(--weight-normal);color:var(--color-text-muted);margin-left:var(--space-2)}.maint-tl-list{margin:0;padding:0;list-style:none}.maint-tl-item{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-default);display:flex}.maint-tl-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.maint-tl-date{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:3.2em}.maint-tl-desc{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-sm);flex:1;overflow:hidden}.maint-tl-loc{font-size:var(--text-xs);color:var(--color-text-muted);flex-shrink:0}.maint-lochist{margin-top:var(--space-8);border-top:1px solid var(--border-default);padding-top:var(--space-5)}.maint-lochist>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);display:inline-flex}.maint-lochist>summary:hover{color:var(--color-text)}.maint-lochist-body{margin-top:var(--space-4)}.maint-tl-btn{text-align:left;border:none;border-bottom:1px solid var(--border-default);cursor:pointer;width:100%;font:inherit;color:var(--color-text);background:0 0}.maint-tl-btn:hover{background:var(--bg-hover)}.maint-tl-btn.cur{background:var(--accent-glow-mid)}.maint-tl-cur-tag{font-size:var(--text-3xs);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-sm);padding:0 var(--space-2);flex-shrink:0}.maint-card-head{align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);margin-bottom:var(--space-3);display:flex}.maint-card-value-row{align-items:baseline;gap:var(--space-3);flex-wrap:wrap;display:flex}.maint-card-value{font-size:var(--text-3xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight)}.maint-card-delta{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);white-space:nowrap}.maint-card-delta-cap{font-size:var(--text-2xs);font-weight:var(--weight-normal);color:var(--color-text-faint)}.maint-card-sub{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-2);min-height:14px}.maint-section{margin-bottom:var(--space-12);padding:var(--space-8) var(--space-9);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow-x:auto}.maint-section h3{margin:0 0 var(--space-6);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text)}.maint-section-head{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-6);flex-wrap:wrap;display:flex}@media (width<=640px){.maint-section-head{row-gap:var(--space-2);margin-bottom:var(--space-7)}.maint-section-head .maint-chart-hint{flex-basis:100%;margin-top:-2px}}.maint-section-head h3{margin:0}.maint-two-col{gap:var(--space-8);grid-template-columns:1.3fr 1fr;display:grid}.maint-chart{align-items:stretch;gap:var(--space-4);height:180px;padding:var(--space-4) 0;display:flex}.maint-bar-col{cursor:pointer;align-items:center;gap:var(--space-2);font:inherit;color:inherit;appearance:none;background:0 0;border:0;flex-direction:column;flex:1;padding:0;display:flex}.maint-bar-col:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:2px;border-radius:var(--radius-xs)}.maint-bar-wrap{width:100%;max-width:var(--space-24);background:var(--bg-panel);border-radius:var(--radius-xs);flex-direction:column-reverse;flex:1;min-height:0;display:flex;overflow:hidden}.maint-bar-seg{width:100%;transition:opacity var(--t-base)}.maint-bar-col:hover .maint-bar-seg,.maint-bar-col:focus-visible .maint-bar-seg{opacity:.85}.maint-bar-label{text-align:center;font-size:var(--text-xs);line-height:var(--leading-snug)}.maint-bar-month{color:var(--color-text-muted);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs)}.maint-bar-month.active{background:var(--color-accent);color:var(--color-text-on-accent)}.maint-bar-total{font-weight:var(--weight-semibold);color:var(--color-text)}.maint-legend{gap:var(--space-8);margin-top:var(--space-6);font-size:var(--text-sm);color:var(--color-text-muted);align-items:center;display:flex}.maint-legend-item{align-items:center;gap:var(--space-2);display:flex}.maint-legend-dot{width:var(--space-5);height:var(--space-5);border-radius:2px;display:inline-block}.maint-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.maint-table th{text-align:left;padding:var(--space-4) var(--space-5);background:var(--bg-panel);border-bottom:1px solid var(--border-default);font-weight:var(--weight-semibold);color:var(--color-text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em}.maint-sort-th{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;border:none;margin:0;padding:0}.maint-sort-th:hover{color:var(--color-text)}.maint-sort-th:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.maint-table td{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border-default);color:var(--color-text);vertical-align:top}.maint-table tbody tr:hover,.maint-table tbody tr:focus-visible{background:var(--accent-glow-mid)}.maint-desc{white-space:pre-wrap;max-width:420px;line-height:var(--leading-normal)}.maint-chip{padding:var(--space-1) var(--space-4);border-radius:var(--radius-xl);font-size:var(--text-3xs);font-weight:var(--weight-semibold);display:inline-block}.maint-result{font-size:var(--text-xs);padding:1px var(--space-3);border-radius:var(--radius-xs);background:var(--bg-panel);color:var(--color-text-muted)}.maint-result.done{color:var(--color-success);background:#10b98126}.maint-result.wip{background:color-mix(in srgb, var(--amber-500) 15%, transparent);color:var(--amber-500)}.maint-search{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-app);display:flex}.maint-search input{font-size:var(--text-sm);color:var(--color-text);background:0 0;border:none;outline:none;width:180px}.maint-table-scroll{max-height:600px;overflow:auto}.maint-col-date{width:90px}.maint-col-type{width:70px}.maint-col-cat{width:80px}.maint-col-loc,.maint-col-vendor{width:110px}.maint-col-result{width:70px}.maint-col-count{width:80px}.maint-rec-list{gap:var(--space-4);flex-direction:column;display:flex}.maint-rec-card{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);background:var(--bg-app)}.maint-rec-top{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.maint-rec-top .maint-result{margin-left:auto}.maint-rec-date{font-size:var(--text-xs);color:var(--color-text-muted)}.maint-rec-desc{font-size:var(--text-sm);color:var(--color-text);white-space:pre-wrap;line-height:var(--leading-normal)}.maint-rec-meta{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted)}@media (width<=640px){.maint-stats-page{padding:var(--space-7) var(--space-7) var(--space-12)}.maint-stats-header{gap:var(--space-4);margin-bottom:var(--space-7);flex-wrap:wrap}.maint-summary-grid{gap:var(--space-5);margin-bottom:var(--space-8);grid-template-columns:repeat(2,1fr)}.maint-card{padding:var(--space-6)}.maint-card-value{font-size:var(--text-xl)}.maint-two-col{gap:var(--space-6);grid-template-columns:1fr}.maint-chart{height:165px}.maint-section{padding:var(--space-7)}.maint-table{font-size:var(--text-xs)}.maint-table th,.maint-table td{padding:var(--space-3) var(--space-4)}}.maint-more{text-align:center;padding:var(--space-6);color:var(--color-text-muted);font-size:var(--text-xs)}.btn-ghost{color:var(--color-accent);font-size:var(--text-xs);cursor:pointer;padding:var(--space-1) var(--space-3);background:0 0;border:none}.btn-ghost:hover,.btn-ghost:focus-visible{text-decoration:underline}.dr-view-toggle{border:1px solid var(--border-default);border-radius:var(--radius-sm);margin-right:var(--space-3);display:inline-flex;overflow:hidden}.dr-view-btn{background:var(--bg-app);padding:var(--space-2) var(--space-5);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;align-items:center;gap:var(--space-2);white-space:nowrap;border:none;flex-shrink:0;display:inline-flex}@media (width<=640px){.dr-view-toggle{gap:var(--space-3);border:none;border-radius:0;flex-wrap:wrap;max-width:100%;display:flex;overflow:visible}.dr-view-toggle>.dr-view-btn{border:1px solid var(--border-default);border-radius:var(--radius-sm);min-width:max-content;padding:var(--space-3) var(--space-6);flex:auto;justify-content:center}}.dr-view-btn.active{background:var(--color-accent);color:var(--color-text-on-accent)}.dr-view-btn:not(.active):hover,.dr-view-btn:not(.active):focus-visible{background:var(--bg-panel)}.dr-view-btn-danger{color:var(--red-600)}.dr-view-btn-danger:hover,.dr-view-btn-danger:focus-visible{background:var(--bg-danger)!important}.dr-cards-container{padding:var(--space-8) var(--space-9);gap:var(--space-6);flex-direction:column;height:100%;display:flex;overflow-y:auto}.dr-cards-container>*{width:100%;max-width:1200px}.dr-cards-warning{padding:var(--space-4) var(--space-6);background:color-mix(in srgb, var(--amber-500) 10%, transparent);color:var(--amber-700);border-radius:var(--radius-sm);font-size:var(--text-sm)}.dr-cards-empty{padding:60px var(--space-10);text-align:center;color:var(--color-text-muted);font-size:var(--text-base);align-items:center;gap:var(--space-7);flex-direction:column;display:flex}.dr-cards-empty p{margin:0}.dr-card-item{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-7) var(--space-8);background:var(--bg-app);transition:border-color var(--t-base), box-shadow var(--t-base)}.dr-card-item:hover,.dr-card-item:focus-visible{border-color:var(--color-accent)}.dr-card-item.maint{border-color:var(--color-accent);background:linear-gradient(to right, var(--accent-glow-mid), transparent 30%)}.dr-card-item-head{justify-content:space-between;align-items:flex-start;gap:var(--space-5);margin-bottom:var(--space-4);display:flex}.dr-card-item-title-wrap{align-items:center;gap:var(--space-4);flex-wrap:wrap;flex:1;display:flex}.dr-card-category{padding:var(--space-1) var(--space-4);color:var(--color-accent);border-radius:var(--radius-xl);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;background:#2e7df61f;display:inline-block}.dr-card-item-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text);line-height:var(--leading-snug);margin:0}.dr-card-maint-check{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px dashed var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;display:inline-flex}.dr-card-maint-check input{cursor:pointer;margin:0}.dr-card-item.maint .dr-card-maint-check{border-style:solid;border-color:var(--color-accent);color:var(--color-accent);background:#2e7df614}.dr-fallback-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dr-fallback-modal{background:var(--bg-app);border-radius:var(--radius-xl);width:560px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-xl);padding:var(--space-9) var(--space-10);gap:var(--space-5);flex-direction:column;display:flex}.dr-fallback-head{font-size:var(--text-md);color:var(--color-text);justify-content:space-between;align-items:center;display:flex}.dr-fallback-close{cursor:pointer;color:var(--color-text-faint);padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none}.dr-fallback-close:hover,.dr-fallback-close:focus-visible{background:var(--bg-header);color:var(--color-text)}.dr-fallback-hint{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal);margin:0}.dr-fallback-hint kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-xs);background:var(--bg-header);border:1px solid var(--border-strong);border-radius:var(--radius-xs);color:var(--color-text-muted);padding:1px 5px}.dr-fallback-text{width:100%;height:240px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-sm);line-height:var(--leading-relaxed);padding:var(--space-5) var(--space-6);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-panel);color:var(--color-text);resize:vertical}.dr-fallback-actions{justify-content:flex-end;gap:var(--space-4);display:flex}.app-global-search-trigger{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5);background:linear-gradient(180deg, var(--bg-panel) 0%, var(--bg-app) 100%);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;transition:border-color var(--t-base), background var(--t-base), box-shadow var(--t-base), transform var(--t-fast);white-space:nowrap;flex-shrink:0;display:inline-flex}.app-global-search-trigger>svg{color:var(--accent-500);flex-shrink:0}@media (width<=640px),(pointer:coarse){.app-global-search-trigger{position:relative}.app-global-search-trigger:before{content:"";position:absolute;inset:-8px -6px}}.app-global-search-trigger:hover{border-color:var(--accent-500);background:linear-gradient(180deg, var(--accent-50) 0%, var(--bg-panel) 100%);color:var(--color-text);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.app-global-search-trigger:focus-visible{border-color:var(--accent-500);background:var(--bg-panel);color:var(--color-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-500) 25%, transparent), var(--shadow-sm);outline:none}.app-global-search-trigger-text{text-align:left}.app-global-search-kbd{gap:var(--space-2);margin-left:var(--space-2);padding-left:var(--space-4);border-left:1px solid var(--border-default);align-items:center;display:inline-flex}.app-global-search-kbd kbd,.home-search-kbd kbd,.gsearch-footer kbd,.gsearch-esc{min-width:18px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-2xs);font-weight:var(--weight-medium);background:var(--bg-app);color:var(--color-text-muted);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:0 1px 0 var(--border-default), inset 0 -1px 0 #00000008;justify-content:center;align-items:center;padding:1px 5px;line-height:1;display:inline-flex}@media (width<=640px){.maint-select{min-height:var(--space-18)}}.home-page{height:calc(100dvh - var(--header-h));scrollbar-gutter:stable;background:var(--slate-50);padding:var(--space-12) var(--space-16) var(--space-20);gap:var(--space-10);flex-direction:column;display:flex;overflow-y:auto}@supports not (height:100dvh){.home-page{height:calc(100vh - var(--header-h))}}.home-page>*{flex-shrink:0}.home-hero{background:linear-gradient(135deg, var(--accent-50) 0%, var(--bg-app) 55%);border:1px solid var(--border-default);border-left:3px solid var(--accent-500);border-radius:var(--radius-2xl);padding:var(--space-12) var(--space-14);box-shadow:var(--shadow-xs);position:relative}.home-hero-greeting{margin:0 0 var(--space-2);font-size:var(--text-display);font-weight:var(--weight-semibold);letter-spacing:-.015em;color:var(--color-text)}.home-hero-greeting strong{color:var(--color-accent);font-weight:var(--weight-bold)}.home-hero-sub{font-size:var(--text-base);color:var(--color-text-muted);margin:0}.home-hero-holiday{color:var(--red-700);font-weight:var(--weight-medium)}.home-hero-info{margin-top:var(--space-5);align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.home-hero-info-item{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-5);border-radius:var(--radius-pill);font-weight:var(--weight-medium);line-height:var(--leading-normal);border:1px solid #0000;display:inline-flex}.home-hero-info-icon{display:inline-flex}.home-hero-info-item[data-kind=duty]{background:color-mix(in srgb, var(--violet-500) 10%, #fff);border-color:color-mix(in srgb, var(--violet-500) 22%, #fff);color:var(--violet-700)}.home-hero-info-item[data-kind=next]{background:color-mix(in srgb, var(--violet-500) 6%, #fff);border-color:color-mix(in srgb, var(--violet-500) 16%, #fff);color:var(--violet-700)}.home-hero-info-item[data-kind=schedule]{background:color-mix(in srgb, var(--accent-500) 10%, #fff);border-color:color-mix(in srgb, var(--accent-500) 22%, #fff);color:var(--accent-700)}.home-hero-info-item[data-kind=absence]{background:color-mix(in srgb, var(--amber-500) 12%, #fff);border-color:color-mix(in srgb, var(--amber-500) 25%, #fff);color:var(--amber-700)}.home-hero-info-item[data-kind=mentions]{background:color-mix(in srgb, var(--red-500) 10%, #fff);border-color:color-mix(in srgb, var(--red-500) 22%, #fff);color:var(--red-600)}.home-hero-info-item[data-mine=false]{color:var(--slate-700);background:#ffffff8c;border-color:#0f172a1a}.home-hero-info-item[data-mine=false][data-kind=duty] .home-hero-info-icon{color:var(--violet-500)}.home-hero-info-item[data-mine=false][data-kind=absence] .home-hero-info-icon{color:var(--amber-600)}.home-hero-info-item[data-mine=false][data-kind=schedule] .home-hero-info-icon{color:var(--accent-600)}.home-hero-info-item[data-kind=gwmail]{background:color-mix(in srgb, var(--teal-500) 10%, #fff);border-color:color-mix(in srgb, var(--teal-500) 24%, #fff);color:var(--teal-700)}.home-hero-info-item[data-kind=gwmail-stale]{background:color-mix(in srgb, var(--amber-500) 10%, #fff);border-color:color-mix(in srgb, var(--amber-500) 24%, #fff);color:var(--amber-700)}.home-hero-info-item[data-kind=duty][data-mine=true]{font-size:var(--text-base);font-weight:var(--weight-bold);background:color-mix(in srgb, var(--violet-500) 16%, #fff)}.home-hero-info-loading{padding:var(--space-2) var(--space-4) var(--space-2) var(--space-3);border:1px solid #0000}.home-hero-info-skel{background:var(--bg-row-alt);border-color:var(--border-default);width:min(200px,70%)}.home-hero-info-skel:after{content:" "}.home-hero[data-weather]{transition:background .6s,border-color .6s}.home-hero[data-weather] .home-hero-weather{z-index:1}.home-hero[data-daypart=day][data-weather=clear]{background:linear-gradient(150deg, #bae6fd 0%, #e0f2fe 45%, var(--bg-app) 85%);border-left-color:var(--sky-500)}.home-hero[data-daypart=day][data-weather=cloud]{background:linear-gradient(150deg, var(--slate-100) 0%, #f1f5f9 55%, var(--bg-app) 90%);border-left-color:var(--slate-400)}.home-hero[data-daypart=day][data-weather=rain]{border-left-color:var(--accent-500);background:linear-gradient(150deg,#aebccd 0%,#cbd5e1 45%,#e8edf3 90%)}.home-hero[data-daypart=day][data-weather=storm]{border-left-color:var(--color-warning);background:linear-gradient(150deg,#8e9cb0 0%,#aab6c6 50%,#d4dbe4 95%)}.home-hero[data-daypart=day][data-weather=snow]{background:linear-gradient(150deg, #dbeafe 0%, #eff6ff 50%, var(--bg-app) 90%);border-left-color:var(--sky-500)}.home-hero[data-daypart=day][data-weather=clear]:before{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 82% 18%,#fde0474d 0%,#0000 32%);position:absolute;inset:0}.home-hero[data-daypart=dusk][data-weather=clear]{background:linear-gradient(150deg,#fdba74 0%,#fed7aa 35%,#ffedd5 65%,#fff7ed 95%);border-left-color:#fb923c}.home-hero[data-daypart=dusk][data-weather=cloud]{background:linear-gradient(150deg,#f0cdb0 0%,#e8d8cc 45%,#f1f5f9 90%);border-left-color:#fb923c}.home-hero[data-daypart=dusk][data-weather=rain],.home-hero[data-daypart=dusk][data-weather=storm]{border-left-color:var(--accent-500);background:linear-gradient(150deg,#8b95a8 0%,#b0bac8 50%,#d6dde6 95%)}.home-hero[data-daypart=dusk][data-weather=snow]{border-left-color:var(--sky-500);background:linear-gradient(150deg,#e8d8d3 0%,#e2e8f0 55%,#f8fafc 95%)}.home-hero[data-daypart=day][data-weather=rain] .home-hero-sub,.home-hero[data-daypart=day][data-weather=storm] .home-hero-sub,.home-hero[data-daypart=dusk][data-weather=rain] .home-hero-sub,.home-hero[data-daypart=dusk][data-weather=storm] .home-hero-sub,.home-hero[data-daypart=day][data-weather=storm] .home-hero-info-chev,.home-hero[data-daypart=dusk][data-weather=storm] .home-hero-info-chev{color:var(--slate-700)}.home-hero[data-daypart=night]{--hero-night-glass:#ffffff12;--hero-night-border:#ffffff29;--hero-night-text:#cbd5e1;--hero-night-text-strong:#f8fafc;--hero-night-text-muted:#a5b3c5;--hero-night-text-soft:#b4c1d1;--hero-night-cool:#93c5fd;--hero-night-warm:#fcd34d;background:linear-gradient(165deg,#1b2a45 0%,#2c4063 52%,#4a5f85 100%);border-color:#4a5a76 #4a5a76 #4a5a76 #60a5fa;box-shadow:inset 0 1px #ffffff12,0 10px 32px -14px #1e3a5f8c}.home-hero[data-daypart=night][data-weather=cloud]{background:linear-gradient(165deg,#202e47 0%,#344764 52%,#51648a 100%)}.home-hero[data-daypart=night][data-weather=rain]{background:linear-gradient(165deg,#172640 0%,#293d5d 52%,#41567c 100%)}.home-hero[data-daypart=night][data-weather=storm]{border-left-color:var(--color-warning);background:linear-gradient(165deg,#141e36 0%,#233452 52%,#384b6e 100%)}.home-hero[data-daypart=night][data-weather=snow]{background:linear-gradient(165deg,#25334e 0%,#3b4e6e 52%,#566b92 100%)}.home-hero[data-daypart=night] .home-hero-greeting{color:var(--hero-night-text)}.home-hero[data-daypart=night] .home-hero-greeting strong{color:var(--hero-night-text-strong);text-shadow:0 0 14px #93c5fd59}.home-hero[data-daypart=night] .home-hero-sub{color:var(--hero-night-text-muted)}.home-hero[data-daypart=night] .home-hero-holiday{color:#fca5a5}.home-hero[data-daypart=night] .home-hero-info-chev{color:var(--hero-night-text-muted)}.home-hero[data-daypart=night] .home-hero-info-clickable:hover,.home-hero[data-daypart=night] .home-hero-info-clickable:focus-visible{background:var(--hero-night-glass);border-color:#ffffff26}.home-hero[data-daypart=night] .home-hero-info-item{background:var(--hero-night-glass);border-color:var(--hero-night-border);color:var(--hero-night-text)}.home-hero[data-daypart=night] .home-hero-info-item[data-kind=duty]{color:#c4b5fd;background:#8b5cf62e;border-color:#c4b5fd4d}.home-hero[data-daypart=night] .home-hero-info-item[data-kind=next]{color:#c4b5fd;background:#8b5cf61f;border-color:#c4b5fd38}.home-hero[data-daypart=night] .home-hero-info-item[data-kind=schedule]{color:var(--hero-night-cool);background:#3b82f62e;border-color:#93c5fd4d}.home-hero[data-daypart=night] .home-hero-info-item[data-kind=absence]{color:var(--hero-night-warm);background:#f59e0b29;border-color:#fcd34d47}.home-hero[data-daypart=night] .home-hero-info-item[data-kind=mentions]{color:#fca5a5;background:#ef444429;border-color:#fca5a547}.home-hero[data-daypart=night] .home-hero-info-item[data-mine=false]{color:var(--hero-night-text-soft);background:0 0;border-color:#ffffff24}.home-hero[data-daypart=night] .home-hero-info-item[data-kind=duty][data-mine=true]{background:#8b5cf647}.home-hero[data-daypart=night] .home-hero-weather{background:var(--hero-night-glass);border-color:var(--hero-night-border);box-shadow:none}.home-hero[data-daypart=night] .home-hero-weather-main{color:var(--hero-night-text)}.home-hero[data-daypart=night] .home-hero-weather-main strong{color:var(--hero-night-text-strong)}.home-hero[data-daypart=night] .home-hero-weather-sub{color:var(--hero-night-text-soft)}.home-hero[data-daypart=night] .home-hero-weather-sub .wx-cool{color:var(--hero-night-cool)}.home-hero[data-daypart=night] .home-hero-weather-sub .wx-warm{color:var(--hero-night-warm)}.home-hero[data-daypart=night] .home-hero-weather[data-cond=rain] .home-hero-weather-sub,.home-hero[data-daypart=night] .home-hero-weather[data-cond=storm] .home-hero-weather-sub{color:var(--hero-night-cool)}.home-hero[data-daypart=night][data-weather=clear]:before{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(circle at 80% 24%,#e2e8f061 0%,#e2e8f01a 7%,#0000 16%),radial-gradient(1.5px 1.5px at 16% 30%,#ffffffe6 50%,#0000 60%),radial-gradient(1px 1px at 30% 62%,#ffffffb3 50%,#0000 60%),radial-gradient(1.5px 1.5px at 44% 22%,#fffc 50%,#0000 60%),radial-gradient(1px 1px at 58% 48%,#fff9 50%,#0000 60%),radial-gradient(1px 1px at 68% 70%,#ffffff8c 50%,#0000 60%),radial-gradient(1.5px 1.5px at 90% 58%,#ffffffb3 50%,#0000 60%);position:absolute;inset:0}.home-hero[data-weather]{overflow:hidden}.home-hero[data-weather=rain]:after,.home-hero[data-weather=storm]:after{content:"";pointer-events:none;background-image:radial-gradient(1.5px 13px at 19px 27px,#3b82f661 55%,#0000 75%),radial-gradient(1px 10px at 52px 66px,#3b82f645 55%,#0000 75%),radial-gradient(1px 8px at 84px 41px,#3b82f629 55%,#0000 75%);background-size:67px 89px,97px 113px,119px 127px;animation:.75s linear infinite hero-rain-fall;position:absolute;inset:-24px;transform:skew(-7deg);-webkit-mask-image:linear-gradient(100deg,#00000040 0%,#00000073 38%,#000 62%);mask-image:linear-gradient(100deg,#00000040 0%,#00000073 38%,#000 62%)}.home-hero[data-daypart=night][data-weather=rain]:after,.home-hero[data-daypart=night][data-weather=storm]:after{background-image:radial-gradient(1.5px 13px at 19px 27px,#93c5fd47 55%,#0000 75%),radial-gradient(1px 10px at 52px 66px,#93c5fd30 55%,#0000 75%),radial-gradient(1px 8px at 84px 41px,#93c5fd1f 55%,#0000 75%)}@keyframes hero-rain-fall{to{background-position:0 89px,0 113px,0 127px}}.home-hero[data-weather=snow]:after{content:"";pointer-events:none;background-image:radial-gradient(2px 2px at 13px 17px,#94a3b899 45%,#0000 60%),radial-gradient(1.5px 1.5px at 67px 89px,#94a3b873 45%,#0000 60%),radial-gradient(1.5px 1.5px at 113px 41px,#94a3b852 45%,#0000 60%);background-size:71px 97px,113px 149px,167px 181px;animation:8s linear infinite hero-snow-fall;position:absolute;inset:-24px}.home-hero[data-daypart=night][data-weather=snow]:after{background-image:radial-gradient(2px 2px at 13px 17px,#ffffffa6 45%,#0000 60%),radial-gradient(1.5px 1.5px at 67px 89px,#ffffff7a 45%,#0000 60%),radial-gradient(1.5px 1.5px at 113px 41px,#ffffff52 45%,#0000 60%)}@keyframes hero-snow-fall{to{background-position:0 97px,0 149px,0 181px}}@media (prefers-reduced-motion:reduce){.home-hero[data-weather]:after{animation:none}}.home-hero-weather{top:var(--space-9);right:var(--space-12);align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-8) var(--space-4) var(--space-6);border-radius:var(--radius-xl);border:1px solid var(--color-border-subtle);background:var(--bg-app);box-shadow:var(--shadow-xs);max-width:46%;font:inherit;text-align:left;cursor:pointer;transition:border-color var(--t-base), box-shadow var(--t-base), transform .16s ease-out;display:flex;position:absolute}.home-hero-weather:active{transform:scale(.97)}.home-hero-weather:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.home-hero[data-daypart=night] .home-hero-weather:hover{box-shadow:none;background:#ffffff1f}.home-hero-weather-icon{color:var(--color-text-muted);flex:none}.home-hero-weather-text{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.home-hero-weather-main{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);white-space:nowrap}.home-hero-weather-main strong{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.01em;color:var(--color-text);margin-right:var(--space-2);font-variant-numeric:tabular-nums}.home-hero-weather-sub{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.home-hero-weather-sub .wx-cool{color:var(--accent-600);font-weight:var(--weight-medium)}.home-hero-weather-sub .wx-warm{color:var(--amber-700);font-weight:var(--weight-medium)}.home-hero-weather[data-cond=clear]{background:linear-gradient(90deg, var(--amber-50), var(--bg-app) 60%)}.home-hero-weather[data-cond=clear] .home-hero-weather-icon{color:var(--amber-500)}.home-hero-weather[data-cond=rain],.home-hero-weather[data-cond=storm]{background:linear-gradient(90deg, var(--accent-50), var(--bg-app) 60%)}.home-hero-weather[data-cond=rain] .home-hero-weather-icon{color:var(--accent-500)}.home-hero-weather[data-cond=storm] .home-hero-weather-icon{color:var(--color-warning)}.home-hero-weather[data-cond=rain] .home-hero-weather-sub,.home-hero-weather[data-cond=storm] .home-hero-weather-sub{color:var(--accent-600);font-weight:var(--weight-medium)}.home-hero-weather[data-cond=snow]{background:linear-gradient(90deg, var(--slate-100), var(--bg-app) 60%)}.home-hero-weather[data-cond=snow] .home-hero-weather-icon{color:var(--sky-500)}.home-hero-weather .home-hero-weather-sub.is-stale{color:var(--color-warning);font-weight:var(--weight-medium)}.home-hero[data-daypart=night] .home-hero-weather .home-hero-weather-sub.is-stale{color:var(--hero-night-warm)}@media (width<=640px){.home-hero{column-gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"greeting weather""sub sub""info info";align-items:start;display:grid}.home-hero-greeting{grid-area:greeting}.home-hero-sub{grid-area:sub}.home-hero-info{grid-area:info}.home-hero-weather{max-width:none;padding:var(--space-3) var(--space-5);justify-self:end;gap:var(--space-3);grid-area:weather;min-height:44px;position:static}.home-hero-weather-sub:not(.is-stale){display:none}.home-hero-weather-main strong{font-size:var(--text-xl)}.home-hero-weather-icon{width:22px;height:22px}}.home-hero-info-clickable{padding:var(--space-2) var(--space-4) var(--space-2) var(--space-3);border-radius:var(--radius-lg);cursor:pointer;color:inherit;text-align:left;font:inherit;transition:background var(--t-base), border-color var(--t-base), transform .16s ease-out;background:0 0;border:1px solid #0000}.home-hero-info-clickable:active{transform:scale(.98)}.home-hero-info-clickable:hover,.home-hero-info-clickable:focus-visible{background:var(--bg-header);border-color:var(--border-default)}@media (hover:none){.home-hero-info-clickable{border-color:var(--border-default);background:var(--bg-header)}.home-hero-info-clickable:active{background:var(--bg-row-alt)}.home-hero[data-daypart=night] .home-hero-info-clickable{border-color:var(--hero-night-border);background:var(--hero-night-glass)}.home-hero[data-daypart=night] .home-hero-info-clickable:active{background:#ffffff24}}@media (width<=640px){.home-hero-info-clickable,.home-hero-info-loading{align-items:center;min-height:44px}.home-hero-info-clickable{padding-right:calc(var(--space-4) + 20px);position:relative}.home-hero-info-item{min-width:0;max-width:100%}.home-hero-info-item>span:not(.home-hero-info-icon){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.home-hero-info-chev{right:var(--space-4);margin-left:0;position:absolute;top:50%;transform:translateY(-50%)}}.home-hero-info-chev{color:var(--color-text-faint);margin-left:var(--space-2);flex-shrink:0}.hero-today-modal-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal);padding:var(--space-12);animation:hero-fade-in var(--dur-fast) ease-out;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.hero-today-modal{background:var(--bg-app);box-shadow:var(--shadow-xl);width:min(540px,100%);max-height:var(--modal-max-h);animation:hero-pop-in var(--dur-base) ease-out;border-radius:16px;flex-direction:column;display:flex;overflow:hidden}@keyframes hero-fade-in{0%{opacity:0}to{opacity:1}}@keyframes hero-pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes hero-fade-out{0%{opacity:1}to{opacity:0}}.weather-detail-backdrop.exiting{animation:hero-fade-out var(--dur-base) ease-out forwards;pointer-events:none}@media (prefers-reduced-motion:reduce){.weather-detail-backdrop.exiting{opacity:0;animation:none}}.hero-today-modal-head{padding:var(--space-8) var(--space-10) var(--space-7);border-bottom:1px solid var(--slate-100);justify-content:space-between;align-items:center;display:flex}.hero-today-modal-title{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.hero-today-modal-title h2{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);letter-spacing:-.01em;margin:0}.hero-today-modal-date{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--weight-medium)}.hero-today-modal-actions{align-items:center;gap:var(--space-5);flex-shrink:0;display:inline-flex}.hero-today-view-toggle{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-panel);align-items:stretch;display:inline-flex;overflow:hidden}.hero-today-view-btn{padding:0 var(--space-5);height:26px;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;transition:background var(--t-base), color var(--t-base);background:0 0;border:0}.hero-today-view-btn+.hero-today-view-btn{border-left:1px solid var(--border-default)}.hero-today-view-btn:hover:not(.active),.hero-today-view-btn:focus-visible:not(.active){background:var(--bg-header);color:var(--color-text)}.hero-today-view-btn.active{background:var(--color-accent);color:var(--color-text-on-accent)}@media (width<=640px){.hero-today-modal-backdrop{padding:var(--space-8)}.hero-today-view-btn{height:36px;padding:0 var(--space-7);font-size:var(--text-sm)}.hero-today-modal-close{padding:var(--space-5)}}.hero-today-modal-close{cursor:pointer;padding:var(--space-3);border-radius:var(--radius-lg);color:var(--color-text-faint);transition:background var(--t-base), color var(--t-base);background:0 0;border:none;display:flex}.hero-today-modal-close:hover,.hero-today-modal-close:focus-visible{background:var(--bg-header);color:var(--color-text)}.hero-today-modal-body{padding:var(--space-7) var(--space-10) var(--space-4);gap:var(--space-9);flex-direction:column;flex:1;display:flex;overflow-y:auto}.hero-today-sec-head{margin:0 0 var(--space-4) 0;font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text);align-items:center;gap:var(--space-4);letter-spacing:.01em;display:flex}.hero-today-sec{--sec-color:var(--color-text-faint)}.hero-today-sec-duty{--sec-color:var(--violet-500)}.hero-today-sec-absence{--sec-color:var(--amber-500)}.hero-today-sec-schedule{--sec-color:var(--color-accent)}.hero-today-sec-mentions{--sec-color:var(--color-danger)}.hero-today-sec-icon{width:var(--space-10);height:var(--space-10);border-radius:var(--radius-md);background:color-mix(in srgb, var(--sec-color) 12%, #fff);color:var(--sec-color);border:1px solid color-mix(in srgb, var(--sec-color) 25%, #fff);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.hero-today-subgroup{gap:var(--space-3);flex-direction:column;display:flex}.hero-today-subgroup+.hero-today-subgroup{margin-top:var(--space-5)}.hero-today-subhead{align-items:center;gap:var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-faint);letter-spacing:.04em;text-transform:uppercase;padding:0 var(--space-1) 0 var(--space-2);display:inline-flex}.hero-today-subhead-label{position:relative}.hero-today-subhead-label:before{content:"";border-radius:var(--radius-full);background:var(--slate-300);width:3px;height:3px;margin-right:var(--space-3);vertical-align:2px;display:inline-block}.hero-today-subhead-count{font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--color-text-muted);background:var(--bg-header);padding:1px var(--space-3);border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0}.hero-today-count{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text-muted);background:var(--bg-header);padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);margin-left:var(--space-1);font-variant-numeric:tabular-nums}.hero-today-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.hero-today-row{align-items:center;gap:var(--space-5);width:100%;padding:var(--space-5) var(--space-6) var(--space-5) var(--space-8);border:1px solid var(--slate-100);background:var(--bg-row-alt);border-radius:var(--radius-xl);cursor:pointer;text-align:left;font:inherit;color:inherit;transition:background var(--t-base), border-color var(--t-base), transform var(--t-base), box-shadow var(--t-base);display:flex;position:relative;overflow:hidden}.hero-today-row:before{content:"";border-radius:0 var(--radius-xs) var(--radius-xs) 0;background:var(--row-accent);width:3px;position:absolute;top:12%;bottom:12%;left:0}.hero-today-row:focus-visible{background:var(--bg-app);border-color:var(--border-strong);box-shadow:var(--shadow-md)}@media (hover:hover){.hero-today-row:hover{background:var(--bg-app);border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(var(--lift-y))}}.hero-today-row-main{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.hero-today-row-title{font-size:var(--text-base);color:var(--color-text);font-weight:var(--weight-semibold);line-height:var(--leading-snug);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.hero-today-row-meta{font-size:var(--text-xs);color:var(--color-text-muted);align-items:center;gap:var(--space-1);white-space:nowrap;text-overflow:ellipsis;display:inline-flex;overflow:hidden}.hero-today-row-time{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text);font-variant-numeric:tabular-nums;white-space:nowrap;background:var(--bg-app);border:1px solid var(--border-default);padding:var(--space-1) var(--space-4);border-radius:var(--radius-md);flex-shrink:0}.hero-today-row:hover .hero-today-row-time{border-color:var(--border-strong);background:var(--bg-panel)}.hero-today-hint{font-size:var(--text-sm);color:var(--color-text-muted);padding:var(--space-5) var(--space-6);background:var(--red-50);border:1px solid var(--red-100);border-radius:var(--radius-lg);margin:0}.hero-today-mark-read{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);border:1px solid var(--border-default);padding:var(--space-1) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:background var(--t-base), color var(--t-base), border-color var(--t-base);background:0 0;margin-left:auto}.hero-today-mark-read:hover,.hero-today-mark-read:focus-visible{background:var(--bg-panel);color:var(--color-text);border-color:var(--border-strong)}.hero-today-row-inbox{--row-accent:var(--red-300)}.hero-today-modal-foot{padding:var(--space-6) var(--space-10) var(--space-8);border-top:1px solid var(--slate-100);background:var(--bg-row-alt);justify-content:flex-end;display:flex}.hero-today-foot-btn{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-accent);background:var(--bg-app);border:1px solid var(--accent-100);border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);cursor:pointer;font-weight:var(--weight-semibold);transition:background var(--t-base), border-color var(--t-base);display:inline-flex}.hero-today-foot-btn:hover,.hero-today-foot-btn:focus-visible{background:var(--bg-hover);border-color:var(--accent-200)}.hero-detail-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal-elevated);padding:var(--space-12);animation:hero-fade-in var(--dur-fast) ease-out;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.hero-detail{background:var(--bg-app);box-shadow:var(--shadow-xl);width:min(460px,100%);max-height:var(--modal-max-h);animation:hero-pop-in var(--dur-fast) ease-out;border-radius:14px;flex-direction:column;display:flex;position:relative;overflow:hidden}.hero-detail-accent{height:var(--space-2);position:absolute;top:0;left:0;right:0}.hero-detail-head{align-items:flex-start;gap:var(--space-6);padding:var(--space-10) var(--space-9) var(--space-7) var(--space-10);border-bottom:1px solid var(--slate-100);display:flex}.hero-detail-title-wrap{gap:var(--space-2);flex-direction:column;flex:1;min-width:0;display:flex}.hero-detail-cal{align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:none;display:inline-flex}.hero-detail-cal-dot{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-full)}.hero-detail-title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-snug);word-break:break-word;margin:0}.hero-detail-sub{margin:var(--space-1) 0 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.hero-detail-close{cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);color:var(--color-text-faint);transition:background var(--t-base), color var(--t-base);background:0 0;border:none;flex-shrink:0;display:flex}.hero-detail-close:hover,.hero-detail-close:focus-visible{background:var(--bg-header);color:var(--color-text)}.hero-detail-body{padding:var(--space-7) var(--space-10) var(--space-8);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.hero-detail-field{align-items:center;gap:var(--space-4);font-size:var(--text-base);color:var(--color-text);display:flex}.hero-detail-field>svg{color:var(--color-text-muted);flex-shrink:0}.hero-detail-desc{margin-top:var(--space-2);padding:var(--space-5) var(--space-6);background:var(--bg-panel);border-radius:var(--radius-lg);border:1px solid var(--slate-100)}.hero-detail-desc-head{align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text-muted);margin-bottom:var(--space-3);display:inline-flex}.hero-detail-desc p{font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-normal);white-space:pre-wrap;word-break:break-word;margin:0}.hero-detail-gallery{margin-top:var(--space-4);gap:var(--space-2);flex-wrap:wrap;display:flex}.hero-detail-thumb{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-panel);cursor:zoom-in;width:72px;height:72px;padding:0;overflow:hidden}.hero-detail-thumb img{object-fit:cover;width:100%;height:100%;display:block}.hero-detail-meta{margin-top:var(--space-2);padding-top:var(--space-5);border-top:1px dashed var(--border-default);align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-faint);display:inline-flex}.hero-detail-foot{padding:var(--space-5) var(--space-9) var(--space-7);border-top:1px solid var(--slate-100);justify-content:flex-end;gap:var(--space-3);background:var(--bg-row-alt);display:flex}.hero-detail-foot-btn{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);cursor:pointer;font-weight:var(--weight-semibold);transition:background var(--t-base), border-color var(--t-base);display:inline-flex}.hero-detail-foot-btn:hover,.hero-detail-foot-btn:focus-visible{background:var(--bg-panel);border-color:var(--border-strong);color:var(--color-text)}.home-hero-sub-dot{margin:0 var(--space-2);opacity:.5}.home-hero-clock{font-variant-numeric:tabular-nums}.home-cell-peek-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal-elevated);padding:var(--space-8);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.home-cell-peek{width:min(440px,100%);max-height:var(--modal-max-h);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);flex-direction:column;display:flex;overflow:hidden}.home-cell-peek-head{align-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-7);border-bottom:1px solid var(--border-default);font-size:var(--text-base);color:var(--color-text-primary);display:flex}.home-cell-peek-head strong{font-weight:var(--weight-semibold)}.home-cell-peek-holiday{font-size:var(--text-xs);color:var(--amber-700);background:color-mix(in srgb, var(--amber-300) 30%, transparent);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm)}.home-cell-peek-count{font-size:var(--text-xs);color:var(--color-text-muted);margin-left:auto}.home-cell-peek-close{padding:var(--space-2);margin-left:var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none}.home-cell-peek-close:hover,.home-cell-peek-close:focus-visible{background:var(--bg-hover);color:var(--color-text-primary)}.home-cell-peek-body{padding:var(--space-3) 0;flex:1;overflow-y:auto}.home-cell-peek-empty{padding:var(--space-12) var(--space-7);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.home-cell-peek-list{margin:0;padding:0;list-style:none}.home-cell-peek-item{align-items:flex-start;gap:var(--space-5);padding:var(--space-5) var(--space-7);border-bottom:1px solid color-mix(in srgb, var(--border-default) 60%, transparent);display:flex}.home-cell-peek-item:last-child{border-bottom:none}.home-cell-peek-dot{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-full);margin-top:var(--space-2);flex-shrink:0}.home-cell-peek-text{flex:1;min-width:0}.home-cell-peek-main{align-items:baseline;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-primary);flex-wrap:wrap;display:flex}.home-cell-peek-sub{font-weight:var(--weight-medium)}.home-cell-peek-meta{gap:var(--space-4);margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);display:flex}.home-cell-peek-cal{font-size:var(--text-xs)}.home-cell-peek-foot{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-7);border-top:1px solid var(--border-default);background:color-mix(in srgb, var(--bg-app) 85%, var(--border-default));display:flex}.home-cell-peek-hint{font-size:var(--text-xs);color:var(--color-text-muted);flex:1}.home-cell-peek-action{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:var(--weight-medium);background:var(--color-accent);color:var(--color-text-on-accent);border-radius:var(--radius-md);cursor:pointer;border:none;display:inline-flex}.home-cell-peek-action:hover,.home-cell-peek-action:focus-visible{background:color-mix(in srgb, var(--color-accent) 85%, #000)}.home-firsttime-hint{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-7);background:color-mix(in srgb, var(--color-accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--color-accent) 25%, transparent);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-text-primary);display:flex}.home-firsttime-hint strong{font-weight:var(--weight-semibold)}.home-firsttime-hint-link{font-size:inherit;font-weight:var(--weight-semibold);color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.home-firsttime-hint-link:hover,.home-firsttime-hint-link:focus-visible{color:color-mix(in srgb, var(--color-accent) 80%, #000)}.home-ms-banner{align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-7);border-radius:var(--radius-lg);color:var(--color-text);border:1px solid #0000;display:flex}.home-ms-banner-returned{background:var(--amber-50);border-color:var(--amber-200);border-left:4px solid var(--color-warning)}.home-ms-banner-requested{background:color-mix(in srgb, var(--color-accent) 8%, transparent);border-color:color-mix(in srgb, var(--color-accent) 25%, transparent);border-left:4px solid var(--color-accent)}.home-ms-banner-icon{flex-shrink:0;display:inline-flex}.home-ms-banner-returned .home-ms-banner-icon{color:var(--color-warning)}.home-ms-banner-requested .home-ms-banner-icon{color:var(--color-accent)}.home-ms-banner-text{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.home-ms-banner-title{font-size:var(--text-md);font-weight:var(--weight-semibold)}.home-ms-banner-returned .home-ms-banner-title{color:var(--amber-900)}.home-ms-banner-detail{font-size:var(--text-sm);color:var(--color-text-muted);word-break:keep-all;overflow-wrap:break-word}.home-ms-banner-btn{align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-on-accent);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;flex-shrink:0;display:inline-flex}.home-ms-banner-returned .home-ms-banner-btn{background:var(--color-warning);border-color:var(--color-warning)}.home-ms-banner-returned .home-ms-banner-btn:hover,.home-ms-banner-returned .home-ms-banner-btn:focus-visible{background:var(--amber-600);border-color:var(--amber-600)}.home-ms-banner-requested .home-ms-banner-btn{background:var(--color-accent);border-color:var(--color-accent)}.home-ms-banner-requested .home-ms-banner-btn:hover,.home-ms-banner-requested .home-ms-banner-btn:focus-visible{filter:brightness(.92)}@media (width<=640px){.home-ms-banner{gap:var(--space-3);flex-wrap:wrap}.home-ms-banner-btn{justify-content:center;width:100%}}.home-action-row{align-items:stretch;gap:var(--space-5);display:flex}.home-action-row .home-search-trigger{flex:1;min-width:0}.home-edit-trigger{width:var(--space-24);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);color:var(--color-text-muted);cursor:pointer;transition:border-color var(--t-base), color var(--t-base), box-shadow var(--t-base);justify-content:center;align-items:center;display:inline-flex}.home-edit-trigger:hover,.home-edit-trigger:focus-visible{border-color:var(--color-accent);color:var(--color-accent);box-shadow:0 4px 18px var(--accent-glow-mid)}.home-search-trigger{align-items:center;gap:var(--space-6);width:100%;padding:var(--space-7) var(--space-10);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);font-size:var(--text-md);color:var(--color-text-muted);cursor:pointer;transition:border-color var(--t-base), box-shadow var(--t-base), transform var(--t-base);display:flex}.home-search-trigger:hover,.home-search-trigger:focus-visible{border-color:var(--color-accent);color:var(--color-text);box-shadow:0 4px 18px #2e7df61f}.home-search-text{text-align:left;flex:1}.home-search-kbd{align-items:center;gap:var(--space-2);display:inline-flex}.home-two-col{gap:var(--space-7);grid-template-columns:1fr 1fr;display:grid}.home-card{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-8) var(--space-9);box-shadow:var(--shadow-xs);transition:box-shadow var(--t-base), border-color var(--t-base)}.home-card:hover{box-shadow:var(--shadow-sm);border-color:var(--accent-200)}.home-card-head{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;row-gap:var(--space-3);flex-wrap:wrap;display:flex}.home-card-head h3{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);align-items:center;gap:var(--space-3);white-space:nowrap;margin:0;display:inline-flex}.home-card-action{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);color:var(--accent-700);cursor:pointer;border-radius:var(--radius-sm);white-space:nowrap;background:0 0;border:none;display:inline-flex}.home-card-action:hover,.home-card-action:focus-visible{background:var(--bg-hover)}.home-cal-strip-body{gap:var(--space-3);flex-direction:column;display:flex}.home-cal-strip{gap:var(--space-2);padding:var(--space-2) 0;grid-template-columns:repeat(7,1fr);display:grid}.home-cal-strip-cell{align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-1) var(--space-2);background:var(--bg-row-alt);border-radius:var(--radius-lg);cursor:pointer;min-height:64px;transition:background var(--t-base), border-color var(--t-base);border:1px solid #0000;flex-direction:column;font-family:inherit;display:flex}.home-cal-strip-cell:hover,.home-cal-strip-cell:focus-visible{background:var(--bg-hover);outline:none}.home-cal-strip-cell.is-today{background:var(--accent-glow-soft);border-color:var(--color-accent)}.home-cal-strip-cell.is-today .home-cal-strip-day{color:var(--color-accent);font-weight:var(--weight-extrabold)}.home-cal-strip-cell.is-weekend .home-cal-strip-day{color:var(--color-text-muted)}.home-cal-strip-cell.is-holiday .home-cal-strip-day{color:var(--color-danger)}.home-cal-strip-cell.has-me{border-color:var(--color-important)}.home-cal-strip-dow{font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--color-text-faint);letter-spacing:.04em}.home-cal-strip-day{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text);font-variant-numeric:tabular-nums;line-height:var(--leading-none)}.home-cal-strip-dots{justify-content:center;gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;min-height:8px;display:flex}.home-cal-strip-dot{border-radius:var(--radius-full);width:5px;height:5px;display:inline-block}.home-cal-strip-dot.is-mine{outline:2px solid var(--color-important);outline-offset:1px;width:7px;height:7px}.home-cal-strip-overflow{font-size:var(--text-3xs);font-weight:var(--weight-bold);color:var(--color-text-faint);margin-left:var(--space-1)}.home-cal-loader{color:var(--color-text-faint);margin-left:var(--space-2);vertical-align:middle}.shift-today-meta{margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.shift-today-date{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);font-variant-numeric:tabular-nums}.shift-today-site{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text-muted);background:var(--bg-row-alt);padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);letter-spacing:-.01em}.shift-today-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.shift-today-row{gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:background var(--t-base);grid-template-columns:36px 1fr;align-items:baseline;display:grid}.shift-today-row[data-has-me=true]{background:color-mix(in srgb, var(--color-important) 14%, transparent)}.shift-today-code{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-accent);background:var(--accent-glow-soft);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);text-align:center;flex-shrink:0;min-width:32px}.shift-today-row[data-shift=dutyA] .shift-today-code,.shift-today-row[data-shift=dutyB] .shift-today-code{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 12%, transparent)}.shift-today-row[data-shift=splitA] .shift-today-code,.shift-today-row[data-shift=splitB] .shift-today-code{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 14%, transparent)}.shift-today-members{font-size:var(--text-sm);color:var(--color-text);word-break:keep-all;overflow-wrap:break-word}.shift-today-member.is-me{font-weight:var(--weight-bold);color:var(--color-important);align-items:center;gap:var(--space-1);display:inline-flex}.shift-today-next{align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-row-alt);border-radius:var(--radius-md);font-size:var(--text-sm);display:flex}.shift-today-next-label{font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--color-text-faint);letter-spacing:.06em;text-transform:uppercase}.shift-today-next-date{font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold);color:var(--color-text)}.shift-today-next-code{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-accent);background:var(--accent-glow-soft);padding:1px var(--space-3);border-radius:var(--radius-xs)}.shift-today-next-days{font-size:var(--text-xs);color:var(--color-text-muted);margin-left:auto}.shift-today-next-empty{font-size:var(--text-xs);color:var(--color-text-faint)}.shift-today-skeleton .shift-today-code-skel,.shift-today-skeleton .shift-today-members-skel{height:var(--space-6);border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--bg-panel) 0%, var(--bg-hover) 50%, var(--bg-panel) 100%);animation:tv-now-shimmer var(--dur-shimmer) ease-in-out infinite;background-size:200% 100%;display:block}.shift-today-skeleton .shift-today-code-skel{width:var(--space-16)}.shift-today-skeleton .shift-today-members-skel{width:75%}@media (width<=640px){.shift-today-row{padding:var(--space-2);grid-template-columns:32px 1fr}.shift-today-members{font-size:var(--text-xs)}}@media (prefers-reduced-motion:reduce){.shift-today-skeleton .shift-today-code-skel,.shift-today-skeleton .shift-today-members-skel{animation:none}}.daily-quick-empty{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-2) 0;margin-bottom:var(--space-2);border-bottom:1px dashed var(--border-default)}.daily-quick-cards{margin:0 0 var(--space-3) 0;padding:0 0 var(--space-3) 0;gap:var(--space-2);border-bottom:1px solid var(--border-default);flex-direction:column;list-style:none;display:flex}.daily-quick-card-row{gap:var(--space-2);font-size:var(--text-xs);grid-template-columns:1fr 60px 36px;align-items:center;display:grid}.daily-quick-card-title{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.daily-quick-card-bar{height:var(--space-3);border-radius:var(--radius-xs);background:var(--bg-row-alt);position:relative;overflow:hidden}.daily-quick-card-bar-fill{background:var(--color-accent);border-radius:var(--radius-xs);transition:width var(--t-slow);position:absolute;inset:0 auto 0 0}.daily-quick-card-row[data-progress="100"] .daily-quick-card-bar-fill{background:var(--color-success)}.daily-quick-card-pct{font-variant-numeric:tabular-nums;color:var(--color-text-muted);text-align:right}.daily-quick-more{font-size:var(--text-2xs);color:var(--color-text-faint);text-align:center;padding-top:var(--space-1)}.daily-quick-form{gap:var(--space-2);flex-direction:column;display:flex}.daily-quick-form-row{gap:var(--space-2);align-items:center;display:flex}.daily-quick-cat{min-width:88px;font-size:var(--text-xs);padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-panel);color:var(--color-text);flex:none}.daily-quick-title{min-width:0;font-size:var(--text-sm);padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-panel);color:var(--color-text);flex:auto}.daily-quick-title:focus-visible,.daily-quick-cat:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.daily-quick-progress-label{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);display:inline-flex}.daily-quick-progress-label input[type=number]{width:52px;font-size:var(--text-sm);font-variant-numeric:tabular-nums;padding:var(--space-2) var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-panel);color:var(--color-text)}.daily-quick-progress-pct{color:var(--color-text-muted)}.daily-quick-save{align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:var(--space-2) var(--space-5);border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-text-on-accent);cursor:pointer;transition:opacity var(--t-base);margin-left:auto;display:inline-flex}.daily-quick-save:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.daily-quick-save:not(:disabled):hover{opacity:.88}@media (width<=640px){.daily-quick-card-row{gap:var(--space-3);grid-template-columns:1fr 48px 32px}.daily-quick-cat{min-width:76px}}.bc-widget-loading{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-3) 0;text-align:center}.bc-widget-empty{align-items:center;gap:var(--space-2);padding:var(--space-3) 0;flex-direction:column;display:flex}.bc-widget-empty-text{font-size:var(--text-xs);color:var(--color-text-muted)}.bc-widget-rows{margin:0 0 var(--space-3) 0;gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.bc-widget-row{gap:var(--space-2);font-size:var(--text-xs);grid-template-columns:32px 1fr auto;align-items:center;display:grid}.bc-widget-row-label{font-weight:var(--weight-semibold);color:var(--color-text)}.bc-widget-bar{height:var(--space-3);border-radius:var(--radius-xs);background:var(--bg-row-alt);position:relative;overflow:hidden}.bc-widget-bar-fill{background:var(--color-accent);border-radius:var(--radius-xs);transition:width var(--t-slow);position:absolute;inset:0 auto 0 0}.bc-widget-row[data-pct="100"] .bc-widget-bar-fill{background:var(--color-success)}.bc-widget-row[data-active=me] .bc-widget-row-label{color:var(--color-accent)}.bc-widget-row-meta{align-items:baseline;gap:var(--space-2);font-variant-numeric:tabular-nums;color:var(--color-text-muted);display:inline-flex}.bc-widget-row-num{color:var(--color-text);font-weight:var(--weight-semibold)}.bc-widget-row-by{color:var(--color-text-faint);font-size:var(--text-2xs)}.bc-widget-todo{padding:var(--space-2) 0 0 0;border-top:1px dashed var(--border-default);gap:var(--space-2);flex-direction:column;margin:0;list-style:none;display:flex}.bc-widget-todo-row{align-items:center;display:flex}.bc-widget-todo-toggle{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;text-align:left;font-size:var(--text-xs);transition:background var(--t-base), border-color var(--t-base);background:0 0;border:1px solid #0000;display:flex}.bc-widget-todo-toggle:hover:not(:disabled){background:var(--bg-row-alt);border-color:var(--border-default)}.bc-widget-todo-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.bc-widget-todo-toggle:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.bc-widget-todo-toggle svg{color:var(--color-text-muted);flex:none;margin-top:1px}.bc-widget-todo-text{flex-direction:column;gap:1px;min-width:0;display:flex}.bc-widget-todo-eq{font-weight:var(--weight-semibold);color:var(--color-text)}.bc-widget-todo-item{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bc-widget-todo-more{font-size:var(--text-2xs);color:var(--color-text-faint);text-align:center;padding-top:var(--space-1)}.bc-widget-done{align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--border-default);font-size:var(--text-xs);color:var(--color-success);font-weight:var(--weight-semibold);display:inline-flex}@media (width<=640px){.bc-widget-row{gap:var(--space-3);grid-template-columns:26px 1fr auto}.bc-widget-row-by{display:none}}.tv-now-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tv-now-row{grid-template-columns:var(--col-w-sm) 1fr;gap:var(--space-4);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--bg-row-alt);border-left:4px solid var(--tv-ch-color);align-items:stretch;display:grid}.tv-now-row[data-channel=a]{--tv-ch-color:var(--color-danger)}.tv-now-row[data-channel=a-digital]{--tv-ch-color:var(--color-accent)}.tv-now-row[data-channel=aplus]{--tv-ch-color:var(--color-success)}.tv-now-channel{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--tv-ch-color);letter-spacing:-.01em;align-self:center}.tv-now-body{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.tv-now-current{align-items:baseline;gap:var(--space-3);font-size:var(--text-base);color:var(--color-text);flex-wrap:wrap;min-width:0;display:inline-flex}.tv-now-current.tv-now-empty{color:var(--color-text-faint);font-style:italic}.tv-now-next{align-items:baseline;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;min-width:0;display:inline-flex}.tv-now-next-label{font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--color-text-faint);letter-spacing:.06em;text-transform:uppercase}.tv-now-time{font-variant-numeric:tabular-nums;font-weight:var(--weight-bold);color:var(--tv-ch-color);flex-shrink:0}.tv-now-next .tv-now-time{color:var(--color-text-muted);font-weight:var(--weight-semibold)}.tv-now-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.tv-now-category{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--tv-ch-color);background:color-mix(in srgb, var(--tv-ch-color) 12%, transparent);padding:1px var(--space-3);border-radius:var(--radius-xs);flex-shrink:0}.tv-now-episode{font-size:var(--text-xs);color:var(--color-text-faint);font-variant-numeric:tabular-nums;flex-shrink:0}.tv-now-rating{font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--color-text);background:var(--bg-panel);border:1px solid var(--border-default);padding:0 var(--space-2);border-radius:var(--radius-xs);flex-shrink:0}.tv-now-live{font-size:var(--text-2xs);font-weight:var(--weight-bold);background:var(--color-danger);color:var(--color-text-on-accent);border-radius:var(--radius-xs);letter-spacing:.02em;flex-shrink:0;padding:1px 5px}.tv-now-replay{font-size:var(--text-2xs);font-weight:var(--weight-semibold);background:var(--bg-panel);color:var(--color-text-muted);border:1px solid var(--border-default);border-radius:var(--radius-xs);flex-shrink:0;padding:1px 5px}.tv-now-progress{background:color-mix(in srgb, var(--tv-ch-color) 18%, transparent);height:3px;margin-top:var(--space-1);border-radius:2px;overflow:hidden}.tv-now-progress-fill{background:var(--tv-ch-color);height:100%;transition:width var(--t-slower)}.tv-now-skeleton .tv-now-channel{color:var(--color-text-faint)}.tv-now-skeleton-line{height:var(--space-6);border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--bg-panel) 0%, var(--bg-hover) 50%, var(--bg-panel) 100%);animation:tv-now-shimmer var(--dur-shimmer) ease-in-out infinite;background-size:200% 100%}.tv-now-skeleton-current{width:70%}.tv-now-skeleton-next{width:45%;height:var(--space-4);opacity:.7}@keyframes tv-now-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=640px){.tv-now-row{gap:var(--space-2);padding:var(--space-3);grid-template-columns:1fr}.tv-now-channel{font-size:var(--text-xs);align-self:flex-start}.tv-now-current{font-size:var(--text-sm)}.tv-now-category,.tv-now-live{font-size:var(--text-3xs)}.tv-now-episode,.tv-now-rating,.tv-now-replay{display:none}}@media (prefers-reduced-motion:reduce){.tv-now-skeleton-line{animation:none}.tv-now-progress-fill{transition:none}}.tv-program-row{gap:var(--space-8);grid-template-columns:minmax(56px,max-content) 1fr;align-items:flex-start;display:grid}.tv-program-time{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text);line-height:var(--leading-tight);font-variant-numeric:tabular-nums;min-width:56px}.tv-program-body{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.tv-program-headline{align-items:baseline;gap:var(--space-4);flex-wrap:wrap;display:flex}.tv-program-category{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-medium)}.tv-program-title{font-size:var(--text-md);color:var(--color-text);font-weight:var(--weight-medium);line-height:var(--leading-snug)}.tv-program-episode{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.tv-program-chips{gap:var(--space-3);flex-wrap:wrap;display:flex}.ui-card.tv-program-card-now{border-color:var(--color-accent);border-left:3px solid var(--color-accent);background:var(--color-accent-50)}.tv-program-now-badge{padding:1px var(--space-3);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-text-on-accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:-.01em;white-space:nowrap;align-items:center;display:inline-flex}.tv-guide-sticky-tabs{top:max(0px, env(safe-area-inset-top));z-index:var(--z-sticky);background:var(--bg-app);padding-bottom:var(--space-4);box-shadow:var(--shadow-sm);position:sticky}.home-empty{align-items:center;gap:var(--space-4);padding:var(--space-12) var(--space-4);color:var(--color-text-faint);text-align:center;flex-direction:column;display:flex}.home-empty p{font-size:var(--text-sm);margin:0}.home-empty-action{margin-top:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);font-size:var(--text-xs);color:var(--color-accent);cursor:pointer;background:0 0}.home-empty-action:hover,.home-empty-action:focus-visible{border-color:var(--color-accent);background:var(--bg-hover)}.home-empty.widget-error-state svg{color:var(--color-warning)}.home-empty.widget-error-state p{color:var(--color-text-muted)}.home-empty.widget-error-state .home-empty-action{align-items:center;gap:var(--space-2);display:inline-flex}.onboarding-backdrop{z-index:var(--z-overlay-top);background:var(--modal-backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:var(--space-10);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.onboarding-card{background:var(--bg-app);border-radius:var(--radius-2xl);border:1px solid var(--border-default);box-shadow:var(--shadow-xl);width:100%;max-width:440px;padding:var(--space-14) var(--space-14) var(--space-10);gap:var(--space-7);flex-direction:column;max-height:calc(100dvh - 40px);display:flex;position:relative;overflow-y:auto}@media (width<=640px){.onboarding-backdrop{padding:var(--space-6)}.onboarding-card{padding:var(--space-10) var(--space-9) var(--space-8);max-height:calc(100dvh - 24px)}}.onboarding-close{top:var(--space-5);right:var(--space-5);width:var(--space-14);height:var(--space-14);border-radius:var(--radius-md);color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.onboarding-close:hover,.onboarding-close:focus-visible{background:var(--bg-header);color:var(--color-text-muted)}.onboarding-head{align-items:center;gap:var(--space-4);color:var(--color-accent);display:flex}.onboarding-head h2{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);margin:0}.onboarding-sub{margin:-6px 0 var(--space-1);font-size:var(--text-sm);color:var(--color-text-muted)}.onboarding-list{gap:var(--space-5);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.onboarding-list li{gap:var(--space-5);padding:var(--space-5) var(--space-6);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);display:flex}.onboarding-list li>svg{color:var(--color-accent);margin-top:var(--space-1);flex-shrink:0}.onboarding-list li>div{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.onboarding-list strong{font-size:var(--text-base);color:var(--color-text)}.onboarding-list span{font-size:var(--text-sm);color:var(--color-text-muted)}.onboarding-footer{justify-content:space-between;align-items:center;gap:var(--space-5);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.onboarding-footer-hint{font-size:var(--text-xs);color:var(--color-text-faint)}.onboarding-primary-btn{background:var(--color-accent);color:var(--color-text-on-accent);border-radius:var(--radius-md);padding:var(--space-4) var(--space-8);font-size:var(--text-base);font-weight:var(--weight-semibold);cursor:pointer;border:none}.onboarding-primary-btn:hover,.onboarding-primary-btn:focus-visible{background:var(--color-accent)}.home-important-list{flex-direction:column;display:flex}.home-important-item{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.home-important-item:hover,.home-important-item:focus-visible{background:var(--amber-100)}.home-important-text{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.home-important-text strong{font-size:var(--text-sm);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.home-important-text span{font-size:var(--text-2xs);color:var(--color-text-faint)}.home-projects-list{gap:var(--space-1);flex-direction:column;display:flex}.home-project-item{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);cursor:pointer;text-align:left;font-size:var(--text-sm);background:0 0;border:none;display:flex}.home-project-item:hover,.home-project-item:focus-visible{background:var(--bg-header)}.home-project-status{border-radius:var(--radius-xl);font-size:var(--text-3xs);color:var(--color-text-on-accent);font-weight:var(--weight-medium);flex-shrink:0;padding:1px 7px}.home-project-title{min-width:0;color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-weight:var(--weight-medium);flex:1;overflow:hidden}.home-project-meta{align-items:center;gap:var(--space-1);color:var(--color-text-faint);font-size:var(--text-2xs);flex-shrink:0;display:inline-flex}.home-feed{flex-direction:column;display:flex}.home-feed-item{align-items:center;gap:var(--space-6);padding:var(--space-5) var(--space-6);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:background var(--t-base);background:0 0;border:none;display:flex}.home-feed-item:hover,.home-feed-item:focus-visible{background:var(--bg-panel)}.home-feed-avatar{width:var(--space-14);height:var(--space-14);border-radius:var(--radius-full);background:linear-gradient(135deg, var(--accent-400), var(--violet-400));color:var(--color-text-on-accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.home-feed-body{flex:1;min-width:0}.home-feed-title{font-size:var(--text-base);color:var(--color-text);align-items:center;gap:var(--space-3);white-space:nowrap;text-overflow:ellipsis;display:flex;overflow:hidden}.home-feed-chip{padding:1px var(--space-3);color:var(--color-accent);border-radius:var(--radius-xs);font-size:var(--text-3xs);font-weight:var(--weight-medium);background:#2e7df61f;flex-shrink:0;display:inline-block}.home-feed-meta{font-size:var(--text-xs);color:var(--color-text-faint);margin-top:var(--space-1)}.home-feed-chev{color:var(--slate-300);flex-shrink:0}.home-feed-item:hover .home-feed-chev{color:var(--color-accent)}.home-footer{justify-content:center;align-items:center;gap:var(--space-3);text-align:center;font-size:var(--text-xs);color:var(--color-text-faint);padding:var(--space-6) 0 0;flex-wrap:wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:flex}.home-footer-label{padding:1px var(--space-4);margin-right:var(--space-2);border-radius:var(--radius-xl);background:var(--bg-header);color:var(--color-text-muted);font-size:var(--text-3xs);font-weight:var(--weight-semibold);letter-spacing:.04em;font-family:inherit;display:inline-block}.home-widget-host{width:100%}.home-widget-grid{position:relative}.home-widget-stack{gap:var(--space-9);flex-direction:column;display:flex}.home-widget-stack .home-widget{width:100%;height:auto;min-height:0}.home-widget-stack .home-widget-content{flex:1;min-height:0}.home-mobile-customize-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);border:1px solid var(--border-default);background:var(--bg-app);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius-md);cursor:pointer;display:inline-flex}.home-mobile-customize-btn:active{background:var(--bg-header)}.home-mobile-customize-btn--inline{border-radius:var(--radius-lg);flex:none;align-self:stretch;min-width:44px}.home-mobile-hidden-count{font-size:var(--text-xs);color:var(--color-text-muted)}.home-mobile-custom-modal{max-width:480px}.home-mobile-custom-hint{margin:0 0 var(--space-5);font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal)}.home-mobile-custom-list{border:1px solid var(--border-default);border-radius:var(--radius-lg);max-height:60vh;margin:0;padding:0;list-style:none;overflow-y:auto}.home-mobile-custom-item{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default);min-height:var(--space-24);display:flex}.home-mobile-custom-item:last-child{border-bottom:none}.home-mobile-custom-item.is-hidden{opacity:.5;background:var(--bg-row-alt)}.home-mobile-custom-eye,.home-mobile-custom-move{width:var(--tap-min);height:var(--tap-min);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.home-mobile-custom-move:disabled{opacity:.35;cursor:default}.home-mobile-custom-eye:active:not(:disabled),.home-mobile-custom-move:active:not(:disabled){background:var(--bg-header);color:var(--color-text)}.home-mobile-custom-title{min-width:0;font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.home-mobile-custom-modal .modal-footer{justify-content:space-between}@media (width<=640px){.home-page{font-size:var(--text-md)}.home-hero{padding:var(--space-9) var(--space-8)}.home-hero-greeting{font-size:var(--text-3xl)}.home-hero-sub{font-size:var(--text-md)}.home-hero-info{font-size:var(--text-base);gap:var(--space-4);margin-top:var(--space-5)}.home-hero-info-icon svg{width:var(--space-7);height:var(--space-7)}.home-card{padding:var(--space-7);border-radius:var(--radius-2xl)}.home-card-head h3{font-size:var(--text-md)}.home-card-head{margin-bottom:var(--space-5)}.home-card-action{font-size:var(--text-base);padding:var(--space-3) var(--space-5);position:relative}.home-card-action:before{content:"";position:absolute;inset:-7px}.home-count{font-size:var(--text-sm);padding:1px var(--space-4)}.notice-widget-title strong{font-size:var(--text-md)}.notice-widget-preview{font-size:var(--text-base);line-height:var(--leading-normal)}.notice-widget-meta{font-size:var(--text-sm)}.notice-widget-item{padding:var(--space-5) var(--space-2)}.notice-add-btn,.notice-submit-btn{padding:var(--space-4) var(--space-6);font-size:var(--text-base)}.home-cal-summary-item{padding:var(--space-5) var(--space-2);font-size:var(--text-base)}.home-cal-summary-date{font-size:var(--text-base)}.important-pick-item{padding:var(--space-5) var(--space-2)}.important-pick-title{font-size:var(--text-md)}.important-pick-meta{font-size:var(--text-sm)}.home-maint-month-btn{padding:var(--space-5) var(--space-4);font-size:var(--text-base)}.home-maint-month-sub{font-size:var(--text-xs)}.activity-stat-num{font-size:var(--text-display)}.activity-stat-label{font-size:var(--text-base)}.home-footer{font-size:var(--text-sm);gap:var(--space-3);padding:var(--space-7) 0 var(--space-4)}.notification-bell-btn{width:38px;height:38px}.notification-bell-btn svg{width:var(--space-10);height:var(--space-10)}.notification-bell-badge{min-width:var(--space-9);height:var(--space-9);font-size:var(--text-xs);line-height:18px}.app-mode-tab{min-height:var(--tap-min);padding:0 var(--space-5)}.app-mode-tab svg{width:var(--space-10);height:var(--space-10)}.app-global-search-trigger{padding:var(--space-4) var(--space-5)}.user-menu-trigger{padding:var(--space-2) var(--space-3)}.user-menu-avatar{width:34px;height:34px;font-size:var(--text-md)}.app-external-link{padding:var(--space-4)}.app-external-link svg{width:var(--space-9);height:var(--space-9)}.home-search-trigger{padding:var(--space-7) var(--space-8);font-size:var(--text-md)}.home-search-text{font-size:var(--text-md);white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.home-search-kbd{display:none}.memo-todo-memo-text{font-size:var(--text-md);line-height:var(--leading-normal);padding:var(--space-2) var(--space-3)}.memo-todo-memos-title{font-size:var(--text-base)}.memo-todo-tool{padding:var(--space-3) var(--space-5);font-size:var(--text-sm)}.memo-todo-icon-btn{width:var(--space-14);height:var(--space-14)}.memo-todo-icon-btn svg{width:var(--space-7);height:var(--space-7)}.memo-todo-add input{padding:var(--space-5) var(--space-6);font-size:var(--text-md)}.memo-todo-text,.memo-todo-text-input{font-size:var(--text-md)}.memo-todo-check{width:var(--space-11);height:var(--space-11)}.memo-todo-item{padding:var(--space-5) var(--space-2);gap:var(--space-5)}.memo-todo-empty{padding:var(--space-9);font-size:var(--text-base)}.memo-todo-tool{min-height:var(--space-15);position:relative}.memo-todo-tool:before{content:"";position:absolute;inset:-7px 0}.notice-add-btn,.notice-submit-btn{min-height:var(--space-15)}.home-empty-action{min-height:var(--space-18)}.home-empty{padding:var(--space-6) var(--space-4);gap:var(--space-3)}.home-empty>svg{max-width:28px;max-height:28px}.weather-widget-days .weather-detail-day:nth-child(n+3){display:none}}.home-widget{flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.home-widget-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.home-widget-content>*{flex:1;min-height:0}.home-widget-empty{padding:var(--space-20) 0}.home-card-calendar .cal-wrapper{height:100%;min-height:0}.react-grid-item.react-grid-placeholder{background:color-mix(in srgb, var(--amber-300) 40%, transparent)!important;border:2px dashed var(--color-edit-mode)!important;border-radius:var(--radius-xl)!important;opacity:1!important}.home-widget-grid.edit-mode .react-grid-item{transition:box-shadow var(--t-base);overflow:visible}.home-widget-grid.edit-mode .react-grid-item:hover,.home-widget-grid.edit-mode .react-grid-item:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--amber-300) 60%, transparent)}.react-grid-item>.react-resizable-handle{display:none;background-image:none!important}.home-widget-grid.edit-mode .react-grid-item>.react-resizable-handle{z-index:3;background:0 0;width:auto;height:auto;display:block;position:absolute;margin:0!important;padding:0!important;transform:none!important}.home-widget-grid.edit-mode .react-grid-item>.react-resizable-handle.react-resizable-handle-se{width:var(--space-10);height:var(--space-10);cursor:se-resize;bottom:0;right:0}.home-widget-grid.edit-mode .react-grid-item>.react-resizable-handle.react-resizable-handle-se:after{content:"";right:var(--space-2);bottom:var(--space-2);width:var(--space-5);height:var(--space-5);border-right:2px solid var(--color-edit-mode);border-bottom:2px solid var(--color-edit-mode);border-radius:0 0 2px;position:absolute}.home-widget-grid.edit-mode .react-grid-item>.react-resizable-handle.react-resizable-handle-sw{width:var(--space-10);height:var(--space-10);cursor:sw-resize;bottom:0;left:0}.home-widget-grid.edit-mode .react-grid-item>.react-resizable-handle.react-resizable-handle-sw:after{content:"";left:var(--space-2);bottom:var(--space-2);width:var(--space-5);height:var(--space-5);border-left:2px solid var(--color-edit-mode);border-bottom:2px solid var(--color-edit-mode);border-radius:0 0 0 2px;position:absolute}.home-widget-grid.edit-mode .react-grid-item>.react-resizable-handle.react-resizable-handle-e{width:var(--space-8);top:var(--space-14);bottom:var(--space-14);cursor:ew-resize;right:-8px}.home-widget-grid.edit-mode .react-grid-item>.react-resizable-handle.react-resizable-handle-e:after{content:"";right:var(--space-3);background:var(--color-edit-mode);border:1px solid var(--amber-700);border-radius:var(--radius-xs);width:5px;height:44px;box-shadow:0 2px 6px color-mix(in srgb, var(--amber-500) 35%, transparent);position:absolute;top:50%;transform:translateY(-50%)}.home-widget-grid.edit-mode .react-grid-item>.react-resizable-handle.react-resizable-handle-e:hover:after{background:var(--amber-600);height:56px}.home-widget-grid.edit-mode .react-grid-item>.react-resizable-handle.react-resizable-handle-s{height:var(--space-8);left:var(--space-14);right:var(--space-14);cursor:ns-resize;bottom:-8px}.home-widget-grid.edit-mode .react-grid-item>.react-resizable-handle.react-resizable-handle-s:after{content:"";bottom:var(--space-3);background:var(--color-edit-mode);border:1px solid var(--amber-700);border-radius:var(--radius-xs);width:44px;height:5px;box-shadow:0 2px 6px color-mix(in srgb, var(--amber-500) 35%, transparent);position:absolute;left:50%;transform:translate(-50%)}.home-widget-grid.edit-mode .react-grid-item>.react-resizable-handle.react-resizable-handle-s:hover:after{background:var(--amber-600);width:56px}.home-widget-grid.edit-mode .react-grid-item.react-draggable{cursor:grab}.home-widget-grid.edit-mode .react-grid-item.react-draggable-dragging{cursor:grabbing;z-index:3}.home-edit-bar{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-7);background:linear-gradient(90deg, var(--amber-100), var(--amber-50));border:1px solid var(--amber-300);border-radius:var(--radius-xl);font-size:var(--text-sm);color:var(--amber-900);display:flex}.home-edit-bar-label{align-items:center;gap:var(--space-3);font-weight:var(--weight-semibold);margin-right:auto;display:inline-flex}.home-edit-bar-add{font-size:var(--text-sm);padding:var(--space-2) var(--space-4);border:1px solid var(--amber-300);border-radius:var(--radius-md);background:var(--bg-app);color:var(--amber-900)}.home-edit-bar-save{background:var(--color-accent)!important;color:var(--color-text-on-accent)!important;border-color:var(--color-accent)!important}.home-widget-controls{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--amber-50);border-bottom:1px dashed var(--amber-300);border-radius:var(--radius-lg) 9px 0 0;font-size:var(--text-xs);color:var(--amber-900);z-index:2;flex-wrap:wrap;display:flex;position:absolute;top:0;left:0;right:0}.home-widget-grid.edit-mode .home-widget{padding-top:38px}.home-widget-grid.edit-mode .home-widget.home-card-calendar{padding:38px 0 0}.home-widget-controls-title{font-weight:var(--weight-semibold);font-size:var(--text-xs);letter-spacing:.02em}.home-widget-controls-spacer{flex:1}.home-widget-opt{align-items:center;gap:var(--space-2);font-size:var(--text-xs);display:inline-flex}.home-widget-opt select{font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border:1px solid var(--amber-300);border-radius:var(--radius-sm);background:var(--bg-app)}.home-widget-size-toggle{border:1px solid var(--amber-300);border-radius:var(--radius-sm);background:var(--bg-app);display:inline-flex;overflow:hidden}.home-widget-size-btn{padding:var(--space-1) var(--space-4);font-size:var(--text-xs);cursor:pointer;color:var(--amber-900);border:none;border-right:1px solid var(--amber-300);background:0 0}.home-widget-size-btn:last-child{border-right:none}.home-widget-size-btn.active{background:var(--amber-300);font-weight:var(--weight-semibold)}.home-widget-ctrl-btn{width:var(--space-12);height:var(--space-11);background:var(--bg-app);border:1px solid var(--amber-300);border-radius:var(--radius-sm);color:var(--amber-900);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.home-widget-ctrl-btn:hover:not(:disabled),.home-widget-ctrl-btn:focus-visible:not(:disabled){background:var(--amber-100)}.home-widget-ctrl-btn:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.home-widget-ctrl-hide{color:var(--red-600);border-color:var(--red-300)}.home-widget-ctrl-hide:hover,.home-widget-ctrl-hide:focus-visible{background:var(--bg-danger)!important}.home-widget-grid.edit-mode .home-widget{box-shadow:0 0 0 1px color-mix(in srgb, var(--amber-300) 40%, transparent);border-color:var(--amber-300)!important}.home-widget-content.edit-blur{pointer-events:none;opacity:.55;filter:saturate(.85)}.home-widget-edit-overlay{justify-content:center;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--amber-800);pointer-events:none;opacity:0;transition:opacity var(--t-base);flex-direction:column;display:flex;position:absolute;inset:38px 0 0}.home-widget:hover .home-widget-edit-overlay{opacity:.7}.notice-list-scroll{padding-right:var(--space-2)}.calendar-page{background:var(--bg-panel);flex-direction:column;height:100%;display:flex}@media (width<=640px){.calendar-page{height:auto;min-height:100%;overflow-x:hidden}.calendar-page-body{flex:none;overflow:visible}.calendar-page-body>*{flex:none;min-height:0}}.calendar-page-empty{height:100%;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.calendar-page-header{padding:var(--space-6) var(--space-12) 0;background:var(--bg-app);flex:none}@media (width<=640px){.calendar-page-header{padding:var(--space-4) var(--space-6) 0;padding-left:max(var(--space-6), env(safe-area-inset-left));padding-right:max(var(--space-6), env(safe-area-inset-right))}}.calendar-page-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.calendar-page-body>*{flex:1;min-height:0}.agenda-view{background:var(--bg-panel);flex-direction:column;height:100%;display:flex}.agenda-toolbar{align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-12);background:var(--bg-app);border-bottom:1px solid var(--border-default);display:flex}.agenda-range{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-app);display:inline-flex;overflow:hidden}.agenda-range-btn{padding:var(--space-3) var(--space-7);font-size:var(--text-sm);border:none;border-right:1px solid var(--border-default);color:var(--color-text-muted);cursor:pointer;background:0 0}.agenda-range-btn:last-child{border-right:none}.agenda-range-btn:hover,.agenda-range-btn:focus-visible{background:var(--bg-header);color:var(--color-text)}.agenda-range-btn.active{background:var(--color-accent);color:var(--color-text-on-accent);font-weight:var(--weight-semibold)}.agenda-search{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text-faint);flex:1;max-width:360px;display:flex}.agenda-search input{font-size:var(--text-base);color:var(--color-text);background:0 0;border:none;outline:none;flex:1}.agenda-search-clear{cursor:pointer;color:var(--color-text-faint);background:0 0;border:none;padding:0;display:inline-flex}.agenda-show-all-sites{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-faint);cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex}.agenda-show-all-sites input{cursor:pointer;margin:0}.agenda-body{min-height:0;padding:var(--space-8) var(--space-12) var(--space-16);flex:1;overflow-y:auto}.agenda-loading,.agenda-error,.agenda-empty{padding:60px var(--space-10);color:var(--color-text-muted);justify-content:center;align-items:center;gap:var(--space-6);flex-direction:column;display:flex}.agenda-skeleton{padding:var(--space-10) var(--space-12)}.dr-list-skeleton{padding:var(--space-10) var(--space-8)}.shift-matrix-skeleton{padding:var(--space-12) var(--space-8)}.bk-skeleton{padding:var(--space-10) var(--space-8)}.wage-skeleton,.cal-stats-skeleton{padding:var(--space-12) var(--space-8)}.notice-widget-skeleton,.notice-board-skeleton{padding:var(--space-8)}.activity-log-skeleton,.qs-skeleton{padding:var(--space-12) var(--space-8)}.broadcast-checklist-skeleton,.roster-panel-skeleton{padding:var(--space-12)}.projects-detail-skeleton,.file-browser-skeleton{padding:var(--space-12) var(--space-8)}.supplies-skeleton,.projects-tab-skeleton,.dr-viewer-skeleton,.bk-both-skeleton,.versions-modal-skeleton,.quote-detail-skeleton,.os-skeleton{padding:var(--space-10) var(--space-8)}.agenda-error{color:var(--color-danger)}.agenda-empty-hint{font-size:var(--text-sm);color:var(--color-text-faint);margin-top:-4px}@media (width<=640px){.agenda-toolbar{gap:var(--space-4);padding:var(--space-5) var(--space-6);flex-wrap:wrap}.agenda-search{flex:220px;order:3;min-width:0;max-width:none}.agenda-range{flex-shrink:0}.agenda-range-btn{padding:var(--space-3) var(--space-5);min-height:var(--space-18)}.agenda-refresh{order:4}.agenda-body{padding:var(--space-6) var(--space-6) var(--space-12)}}.agenda-day{margin-bottom:var(--space-9)}.agenda-day-head{align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-2);border-bottom:1px solid var(--border-default);margin-bottom:var(--space-4);display:flex}.agenda-day-head strong{font-size:var(--text-base);color:var(--color-text)}.agenda-day-count{font-size:var(--text-xs);color:var(--color-text-faint);background:var(--bg-header);padding:1px var(--space-4);border-radius:var(--radius-xl)}.agenda-day-list{gap:var(--space-2);flex-direction:column;display:flex}.agenda-item{align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-6);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;text-align:left;transition:all var(--t-fast);display:flex}.agenda-item:hover,.agenda-item:focus-visible{border-color:var(--color-accent);box-shadow:0 2px 8px #2e7df614}.agenda-cal-dot{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-full);flex-shrink:0}.agenda-cal-label{font-size:var(--text-xs);color:var(--color-text-muted);min-width:90px}.agenda-item-title{font-size:var(--text-base);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.agenda-site-chip{font-size:var(--text-3xs);padding:1px var(--space-3);background:var(--bg-header);color:var(--color-text-muted);border-radius:var(--radius-xs)}.agenda-item-time{font-size:var(--text-xs);color:var(--color-text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.agenda-item-location{font-size:var(--text-xs);color:var(--color-text-faint)}@media (width<=640px){.agenda-item{row-gap:var(--space-2);flex-wrap:wrap}.agenda-item-title{flex:1 1 calc(100% - var(--space-10))}.agenda-cal-label{min-width:0;margin-left:calc(var(--space-4) + var(--space-5));order:1}.agenda-site-chip,.agenda-item-time,.agenda-item-location{order:1}}.home-cal-summary{flex-direction:column;height:100%;display:flex}.home-cal-summary-body{gap:var(--space-5);padding-top:var(--space-2);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.hcs-row{gap:var(--space-2);flex-direction:column;display:flex}.hcs-row-head{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-semibold);display:inline-flex}.hcs-row-list{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.hcs-empty{font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic}.hcs-pill{padding:var(--space-1) var(--space-4);border-radius:var(--radius-2xl);font-size:var(--text-sm);font-weight:var(--weight-semibold);background:var(--bg-app);border:1px solid;align-items:center;display:inline-flex}.hcs-pill-hybrid{gap:var(--space-2)}.hcs-pill-sub{font-size:var(--text-3xs);font-weight:var(--weight-normal);color:var(--color-text-muted);margin-left:var(--space-1)}.hcs-pill-code{margin-right:var(--space-1);border-radius:var(--radius-xs);font-size:var(--text-3xs);font-weight:var(--weight-bold);letter-spacing:-.01em;justify-content:center;align-items:center;padding:0 5px;line-height:14px;display:inline-flex}.hcs-upcoming{border-top:1px dashed var(--border-default);padding-top:var(--space-4)}.hcs-upcoming-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.hcs-upcoming-row{align-items:flex-start;gap:var(--space-5);font-size:var(--text-sm);display:flex}.hcs-upcoming-date{width:64px;color:var(--color-text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-xs);flex-shrink:0;padding-top:1px}.hcs-upcoming-events{gap:var(--space-4);flex-wrap:wrap;flex:1;display:flex}.hcs-upcoming-evt{align-items:center;gap:var(--space-2);display:inline-flex}.hcs-cal-dot{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-full)}.hcs-upcoming-evt-sub{font-size:var(--text-3xs);color:var(--color-text-faint)}.home-cal-month-widget{flex-direction:column;height:100%;min-height:0;display:flex}.home-cal-month-head-right,.hcs-head-right{align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:flex-end;display:inline-flex}.home-cal-filter-seg{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-panel);align-items:stretch;display:inline-flex;overflow:hidden}.home-cal-filter-seg-btn{padding:0 var(--space-4);height:var(--space-11);min-width:34px;font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;border:0;border-right:1px solid var(--border-default);white-space:nowrap;background:0 0}.home-cal-filter-seg-btn:last-child{border-right:0}.home-cal-filter-seg-btn:hover:not(.active),.home-cal-filter-seg-btn:focus-visible:not(.active){background:var(--bg-header);color:var(--color-text)}.home-cal-filter-seg-btn.active{background:var(--bg-app);color:var(--color-text);font-weight:var(--weight-semibold);box-shadow:inset 0 -2px 0 var(--color-accent)}.home-cal-site-seg{padding:0 var(--space-2) 0 var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--color-text-muted);background:0 0;align-items:center;gap:0;display:inline-flex}.home-cal-site-seg-icon{margin-right:var(--space-2);color:var(--color-text-faint);flex-shrink:0}.home-cal-site-seg-btn{padding:0 var(--space-3);height:var(--space-11);font-size:var(--text-2xs);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;border-radius:var(--radius-xs);transition:background var(--t-base), color var(--t-base);background:0 0;border:0}.home-cal-site-seg-btn:hover:not(.active),.home-cal-site-seg-btn:focus-visible:not(.active){background:var(--bg-header);color:var(--color-text)}@media (width<=640px){.home-cal-site-seg-btn,.home-cal-filter-seg-btn{height:var(--space-15);font-size:var(--text-xs);position:relative}.home-cal-site-seg-btn:before,.home-cal-filter-seg-btn:before{content:"";position:absolute;inset:-7px 0}}.home-cal-site-seg-btn.active{background:var(--accent-600);color:var(--color-text-on-accent);font-weight:var(--weight-semibold)}.home-cal-month{gap:var(--space-2);min-height:0;padding-top:var(--space-2);flex-direction:column;flex:1;display:flex}.home-cal-month-nav{align-items:center;gap:var(--space-2);display:inline-flex}.home-cal-month-btn,.home-cal-month-today{height:var(--space-11);padding:0 var(--space-3);min-width:var(--space-18);white-space:nowrap;border:1px solid var(--border-default);background:var(--bg-app);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-xs);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.home-cal-month-btn:hover,.home-cal-month-btn:focus-visible,.home-cal-month-today:hover:not(:disabled){background:var(--bg-header)}.home-cal-month-today:disabled{opacity:var(--disabled-opacity);cursor:default}.home-cal-month-weekdays{gap:var(--space-1);font-size:var(--text-3xs);color:var(--color-text-faint);font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase;grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.home-cal-month-weekday{text-align:center;padding:var(--space-1) 0}.home-cal-month-weekday.sun{color:var(--color-danger)}.home-cal-month-weekday.sat{color:var(--color-accent)}.home-cal-month-weekday.sun:after{content:"●";margin-left:var(--space-1);vertical-align:2px;opacity:.7;font-size:.55em}.home-cal-month-weekday.sat:after{content:"◇";margin-left:var(--space-1);vertical-align:1px;opacity:.8;font-size:.7em}.home-cal-month-grid{gap:var(--space-1);flex:1;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(44px,1fr);min-height:0;display:grid}.home-cal-month-cell{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-1);cursor:pointer;text-align:left;flex-direction:column;align-items:stretch;min-width:0;display:flex;position:relative;overflow:hidden}.home-cal-month-cell.has-mine:before{content:"";width:var(--space-1);background:var(--color-mine);border-radius:var(--radius-sm) 0 0 var(--radius-sm);pointer-events:none;position:absolute;top:0;bottom:0;left:0}.home-cal-month-cell-head{align-items:baseline;gap:var(--space-2);line-height:var(--leading-tight);min-width:0;display:flex}.home-cal-month-holiday{font-size:var(--text-3xs);color:var(--color-danger);font-weight:var(--weight-semibold);white-space:nowrap;text-overflow:ellipsis;min-width:0;padding:0 var(--space-2);border-radius:var(--radius-pill);letter-spacing:-.01em;background:#ef444414;flex:1;line-height:13px;overflow:hidden}.home-cal-month-cell{transition:background var(--t-base), border-color var(--t-base), box-shadow var(--t-base), transform var(--t-fast)}.home-cal-month-cell:hover{background:linear-gradient(180deg, var(--accent-50) 0%, var(--bg-panel) 100%);border-color:var(--accent-500);box-shadow:var(--shadow-xs);transform:translateY(-1px)}.home-cal-month-cell:focus-visible{border-color:var(--accent-500);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-500) 25%, transparent);outline:none}.home-cal-month-cell.other{background:var(--bg-panel)}.home-cal-month-cell.other .home-cal-month-date{color:var(--slate-300)}.home-cal-month-cell.today{border-color:var(--accent-200);background:var(--accent-50);box-shadow:inset 0 2px 0 0 var(--color-accent)}.home-cal-month-cell.today .home-cal-month-date,.home-cal-month-cell.today .home-cal-month-date.sun,.home-cal-month-cell.today .home-cal-month-date.sat{background:var(--color-accent);color:var(--color-text-on-accent);width:var(--space-9);height:var(--space-9);border-radius:var(--radius-full);font-size:var(--text-3xs);font-weight:var(--weight-bold);justify-content:center;align-items:center;display:inline-flex;box-shadow:0 1px 2px #2e7df659}.home-cal-month-date{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text);line-height:var(--leading-tight)}.home-cal-month-date.sun{color:var(--color-danger);font-weight:var(--weight-bold)}.home-cal-month-date.sat{color:var(--color-accent);font-weight:var(--weight-bold)}.home-cal-month-cell.other .home-cal-month-date.sun,.home-cal-month-cell.other .home-cal-month-date.sat{color:var(--slate-300)}.home-cal-month-badges{flex-direction:column;gap:1px;margin-top:1px;display:flex;overflow:hidden}.home-cal-month-badge{align-items:center;gap:var(--space-1);max-width:100%;padding:0 var(--space-2) 0 0;border-radius:var(--radius-xs);font-size:var(--text-3xs);line-height:14px;font-weight:var(--weight-bold);white-space:nowrap;text-overflow:ellipsis;border:1px solid;display:inline-flex;overflow:hidden}.home-cal-month-more{font-size:var(--text-3xs);line-height:14px;font-weight:var(--weight-semibold);color:var(--color-text-muted);white-space:nowrap;align-self:flex-start}.home-cal-month-badge-prefix{min-width:13px;padding:0 var(--space-1);font-weight:var(--weight-extrabold);font-size:var(--text-3xs);color:var(--color-text-on-accent);border-radius:2px 0 0 2px;flex:none;justify-content:center;align-items:center;line-height:14px;display:inline-flex}.home-cal-month-badge.duty{--ev-color:var(--color-accent);background:color-mix(in srgb, var(--ev-color) 18%, #fff);border-color:color-mix(in srgb, var(--ev-color) 45%, #fff)}.home-cal-month-badge.duty .home-cal-month-badge-prefix{background:var(--ev-color)}.home-cal-month-badge.absence{--ev-color:var(--color-text-muted);border-color:color-mix(in srgb, var(--ev-color) 40%, #fff);background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--ev-color) 8%, #fff) 0, color-mix(in srgb, var(--ev-color) 8%, #fff) 3px, color-mix(in srgb, var(--ev-color) 22%, #fff) 3px, color-mix(in srgb, var(--ev-color) 22%, #fff) 6px)}.home-cal-month-badge.absence .home-cal-month-badge-prefix{background:var(--ev-color)}.home-cal-month-badge.absence.half{border-style:dashed}.home-cal-month-badge.is-mine{font-weight:var(--weight-extrabold)}.home-cal-month-more{font-size:var(--text-3xs);color:var(--color-text-muted);padding:0 var(--space-1)}.mw-summary{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=640px){.mw-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.mw-skeleton{gap:var(--space-6);padding:var(--space-4) 0;flex-direction:column;display:flex}.mw-summary-item{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-text-muted);display:flex}.mw-summary-dot{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-full);flex-shrink:0}.mw-summary-label{flex:1}.mw-summary-num{font-size:var(--text-md);color:var(--color-text)}.mw-summary-total{background:var(--bg-info);border-color:var(--color-accent);color:var(--color-accent)}.mw-summary-total .mw-summary-num{color:var(--color-accent)}.mw-monthly{align-items:flex-end;gap:var(--space-2);height:110px;padding:var(--space-2) var(--space-1) 0;border-top:1px dashed var(--border-default);display:flex}.mw-month-col{align-items:center;gap:var(--space-2);flex-direction:column;flex:1;height:100%;display:flex}.mw-bar-stack{border-radius:var(--radius-xs) var(--radius-xs) 0 0;background:var(--bg-row-alt);flex-direction:column-reverse;flex:1;justify-content:flex-start;width:100%;min-height:2px;display:flex;overflow:hidden}.mw-bar-seg{width:100%}.mw-month-label{font-size:var(--text-3xs);color:var(--color-text-muted)}.home-cal-month-badge.schedule{background:var(--bg-panel);color:var(--color-text-muted);border:1px solid var(--border-default);align-items:center;gap:var(--space-2);font-weight:var(--weight-medium);min-width:0;padding:1px 5px;display:inline-flex}.home-cal-month-badge-dot{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-full);flex-shrink:0}.home-cal-month-badge-time{font-variant-numeric:tabular-nums;color:var(--color-text-faint,var(--color-text-muted));font-weight:var(--weight-semibold);margin-right:var(--space-1);flex:none}.home-cal-month-badge-head{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.home-cal-month-badge-tail{white-space:nowrap;font-weight:var(--weight-semibold);color:var(--color-text);flex:none}.hcs-pill-sched{border-color:var(--border-default);color:var(--color-text-muted);align-items:center;gap:var(--space-2);display:inline-flex}.mtm-month-chips{gap:var(--space-3);padding:var(--space-2) 0 var(--space-5);flex-wrap:wrap;display:flex}.mtm-month-chip{padding:var(--space-2) var(--space-6);background:var(--bg-app);color:var(--color-text);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--t-base);flex-direction:column;align-items:center;gap:1px;min-width:56px;display:inline-flex}.mtm-month-chip:hover,.mtm-month-chip:focus-visible{border-color:var(--color-accent);background:var(--bg-hover)}.mtm-month-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent)}.mtm-month-chip-label{font-size:var(--text-base);font-weight:var(--weight-semibold);line-height:var(--leading-tight)}.mtm-month-chip-sub{font-size:var(--text-3xs);opacity:.75;line-height:var(--leading-tight)}.mtm-kpi-grid{gap:var(--space-5);padding:var(--space-2) 0 var(--space-6);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.mtm-kpi{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.mtm-kpi-head{align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);display:flex}.mtm-kpi-num{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight)}.mtm-kpi-sub{font-size:var(--text-xs);color:var(--color-text-muted)}.mtm-pivot-section{border-top:1px dashed var(--border-default);padding-top:var(--space-5);margin-top:var(--space-2)}.mtm-pivot-head{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin-bottom:var(--space-4);display:flex}.mtm-pivot-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.mtm-pivot-card{background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.mtm-pivot-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);justify-content:space-between;align-items:center;display:flex}.mtm-pivot-table{border-collapse:collapse;width:100%;font-size:var(--text-xs)}.mtm-pivot-table th{background:var(--bg-header);color:var(--color-text-muted);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-2);text-align:center;border-bottom:1px solid var(--border-default)}.mtm-pivot-table td{padding:var(--space-1) var(--space-2);text-align:center;border-bottom:1px solid var(--border-default)}.mtm-pivot-table td:first-child{text-align:left;color:var(--color-text);font-weight:var(--weight-medium)}.mtm-pivot-empty{text-align:center;font-size:var(--text-xs);color:var(--color-text-faint);padding:var(--space-5) 0}@media (width<=640px){.mtm-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mtm-pivot-grid{grid-template-columns:1fr}}.mloc-list{gap:var(--space-5);padding:var(--space-2) var(--space-1);flex-direction:column;display:flex}.mloc-row{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);gap:var(--space-3);flex-direction:column;display:flex}.mloc-row-head{font-size:var(--text-base);justify-content:space-between;align-items:baseline;display:flex}.mloc-row-total{color:var(--color-accent);font-weight:var(--weight-semibold)}.mloc-bar{height:var(--space-4);border-radius:var(--radius-sm);background:var(--bg-row-alt);display:flex;overflow:hidden}.mloc-bar-seg{height:100%}.mloc-breakdown{gap:var(--space-4);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.mloc-chip{align-items:center;gap:var(--space-2);display:inline-flex}.mloc-chip-dot{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-full)}.mcat-list{gap:var(--space-3);padding:var(--space-2) var(--space-1);flex-direction:column;display:flex}.mcat-row{align-items:center;gap:var(--space-4);font-size:var(--text-sm);grid-template-columns:110px 1fr 36px;display:grid}.mcat-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mcat-bar{height:var(--space-7);background:var(--bg-row-alt);border-radius:var(--radius-xs);display:flex;overflow:hidden}.mcat-bar-seg{height:100%}.mcat-total{text-align:right;font-weight:var(--weight-semibold);color:var(--color-text-muted)}.home-count{margin-left:var(--space-2);padding:0 var(--space-3);background:var(--bg-header);color:var(--color-text-muted);border-radius:var(--radius-xl);font-size:var(--text-xs);font-weight:var(--weight-medium);display:inline-block}.notice-edit-form{gap:var(--space-3);padding:var(--space-4) var(--space-2) var(--space-6);flex-direction:column;display:flex}.notice-action-btn{cursor:pointer;color:var(--slate-300);padding:var(--space-1);border-radius:var(--radius-xs);margin-left:var(--space-1);background:0 0;border:none}.notice-action-btn:hover,.notice-action-btn:focus-visible{background:var(--bg-hover);color:var(--color-accent)}.notice-action-btn.notice-delete:hover,.notice-action-btn.notice-delete:focus-visible{background:var(--bg-danger);color:var(--color-danger)}.notice-edited{font-size:var(--text-3xs);color:var(--slate-300);font-style:italic}.notice-board{flex-direction:column;flex:1;min-height:0;display:flex}.notice-add-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);background:var(--bg-hover);border:1px solid var(--accent-200);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--accent-700);cursor:pointer;font-weight:var(--weight-semibold);display:inline-flex}.notice-add-btn:hover,.notice-add-btn:focus-visible{background:var(--accent-100);border-color:var(--color-accent)}.notice-compose{gap:var(--space-4);padding:var(--space-6);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);margin-bottom:var(--space-5);flex-direction:column;display:flex}.notice-compose-title{padding:var(--space-4) var(--space-5);font-size:var(--text-base);font-weight:var(--weight-semibold);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--color-text);background:var(--bg-app);outline:none}.notice-compose-title:focus{border-color:var(--color-accent)}.notice-compose-content{padding:var(--space-4) var(--space-5);font-size:var(--text-sm);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--color-text);background:var(--bg-app);resize:vertical;outline:none;font-family:inherit}.notice-compose-content:focus{border-color:var(--color-accent)}.notice-compose-actions{align-items:center;gap:var(--space-3);display:flex}.notice-compose-expires{align-items:center;gap:var(--space-2) var(--space-4);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.notice-compose-expires label{font-weight:var(--weight-semibold);color:var(--color-text)}.notice-compose-expires input{padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-app);color:var(--color-text);font:inherit;font-size:var(--text-xs)}.notice-compose-expires-hint{color:var(--color-text-muted)}.notice-compose-author{font-size:var(--text-xs);color:var(--color-text-faint);flex:1}.notice-submit-btn{background:var(--color-accent);color:var(--color-text-on-accent);border:none}.notice-submit-btn:hover,.notice-submit-btn:focus-visible{background:var(--accent-700)}.notice-submit-btn:disabled{background:var(--slate-300);cursor:not-allowed}.notice-list{overscroll-behavior:contain;gap:var(--space-3);min-height:0;padding:var(--space-1) var(--space-1) var(--space-2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.notice-item{background:var(--bg-panel);border:1px solid var(--border-default);border-left:3px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);transition:border-color var(--t-base), box-shadow var(--t-base)}.notice-item[data-site=gwanghwamun]{border-left-color:var(--color-accent)}.notice-item[data-site=sangam]{border-left-color:var(--color-success)}.notice-item:hover,.notice-item.expanded{border-color:var(--accent-200);box-shadow:var(--shadow-sm)}.notice-item.unread .notice-item-title strong{font-weight:var(--weight-bold);color:var(--color-text)}.notice-pin-badge{padding:1px var(--space-3);border-radius:var(--radius-pill);background:var(--amber-100);color:var(--amber-700);font-size:var(--text-2xs);font-weight:var(--weight-bold);flex-shrink:0;align-items:center;gap:3px;display:inline-flex}.notice-pin-badge svg{transform:rotate(35deg)}.notice-item-title .notice-site-badge,.notice-widget-title .notice-site-badge{padding:1px var(--space-3);font-size:var(--text-2xs);font-weight:var(--weight-bold);border:none;flex-shrink:0}.notice-item-title .notice-site-badge.ui-chip-tone-accent,.notice-widget-title .notice-site-badge.ui-chip-tone-accent{background:var(--color-accent);color:var(--color-text-on-accent)}.notice-item-title .notice-site-badge.ui-chip-tone-success,.notice-widget-title .notice-site-badge.ui-chip-tone-success{background:var(--color-success);color:var(--color-text-on-accent)}.notice-item-title .notice-site-badge.ui-chip-tone-muted,.notice-widget-title .notice-site-badge.ui-chip-tone-muted{background:var(--slate-400);color:var(--color-text-on-accent)}.notice-unread-marker{background:var(--color-accent);border-radius:50%;flex-shrink:0;width:7px;height:7px}.notice-chevron{color:var(--color-text-faint);transition:transform var(--t-base);flex-shrink:0}.notice-chevron.open{transform:rotate(180deg)}.notice-actions{align-items:center;gap:var(--space-1);display:inline-flex}@media (hover:hover) and (pointer:fine){.notice-item-head{position:relative}.notice-actions{display:none}.notice-item:hover .notice-actions,.notice-item:focus-within .notice-actions{right:calc(var(--space-8) + var(--space-2));background:var(--bg-panel);box-shadow:-12px 0 12px -6px var(--bg-panel);padding-left:var(--space-3);border-radius:var(--radius-sm);z-index:2;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}}.notice-item-head{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-4);border-radius:var(--radius-md);display:flex}.notice-item-title{align-items:center;gap:var(--space-4);flex:1;min-width:0;display:flex}.notice-item-title strong{font-size:var(--text-base);color:var(--color-text);font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.notice-expand-hint{font-size:var(--text-3xs);color:var(--color-text-faint);flex-shrink:0}.notice-item-meta{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-faint);flex-shrink:0;display:flex}@media (width<=640px){.notice-item-head{row-gap:var(--space-2);flex-wrap:wrap}.notice-item-title{flex-basis:100%}.notice-item-title strong{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.notice-item-meta{flex:1}.notice-item-meta .notice-chevron,.notice-item-meta .notice-actions{margin-left:auto}.notice-item-meta .notice-actions~.notice-chevron{margin-left:0}}.notice-delete{cursor:pointer;color:var(--slate-300);padding:var(--space-1);border-radius:var(--radius-xs);margin-left:var(--space-2);background:0 0;border:none}.notice-delete:hover,.notice-delete:focus-visible{background:var(--bg-danger);color:var(--color-danger)}.notice-item-body{padding:var(--space-2) var(--space-4) var(--space-6);font-size:var(--text-sm);color:var(--color-text-muted);white-space:pre-wrap;line-height:var(--leading-relaxed)}.notice-reply-count{align-items:center;gap:var(--space-1);padding:1px var(--space-3);background:var(--bg-header);color:var(--color-text-muted);border-radius:var(--radius-xl);font-size:var(--text-xs);font-weight:var(--weight-medium);display:inline-flex;position:relative}.notice-unread-dot{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-full);background:var(--red-500);margin-left:var(--space-1);display:inline-block}.notice-mention-badge{align-items:center;gap:var(--space-1);padding:1px var(--space-3);background:var(--red-50);color:var(--red-600);border:1px solid var(--red-200);border-radius:var(--radius-xl);font-size:var(--text-3xs);font-weight:var(--weight-semibold);display:inline-flex}.notice-site-badge{padding:1px var(--space-3);background:var(--slate-50);color:var(--color-text-muted);border:1px solid var(--border-default);border-radius:var(--radius-xl);font-size:var(--text-3xs);font-weight:var(--weight-semibold);align-items:center;display:inline-flex}.notice-compose-site{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;display:flex}.notice-compose-site>label{font-size:var(--text-2xs);color:var(--color-text-muted);font-weight:var(--weight-medium)}.notice-replies{padding:var(--space-4) var(--space-4) var(--space-5);gap:var(--space-5);border-top:1px dashed var(--border-default);margin-top:var(--space-2);flex-direction:column;display:flex}.notice-replies-empty{font-size:var(--text-xs);color:var(--color-text-faint);padding:var(--space-4) 0;text-align:center}.notice-reply{background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.notice-reply-head{align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-faint);display:flex}.notice-reply-author{color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.notice-reply-date{color:var(--color-text-faint)}.notice-reply-spacer{flex:1}.notice-reply-body{font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-normal);white-space:pre-wrap;word-break:break-word}.notice-mention-inline{background:var(--bg-hover);color:var(--accent-700);padding:0 var(--space-2);border-radius:var(--radius-sm);font-weight:var(--weight-semibold)}.notice-reply-reactions{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.notice-reaction-chip{align-items:center;gap:var(--space-1);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-2xl);font-size:var(--text-xs);cursor:pointer;line-height:var(--leading-snug);transition:background var(--t-fast);padding:1px 7px;display:inline-flex}.notice-reaction-chip:hover:not(:disabled),.notice-reaction-chip:focus-visible:not(:disabled){background:var(--bg-header)}.notice-reaction-chip.mine{background:var(--bg-hover);border-color:var(--accent-200);color:var(--accent-700)}.notice-reaction-num{font-weight:var(--weight-semibold)}.notice-reaction-add-wrap{position:relative}.notice-reaction-add{width:var(--space-11);height:var(--space-10);background:var(--bg-app);border:1px dashed var(--border-default);border-radius:var(--radius-xl);color:var(--color-text-faint);cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.notice-reaction-add:hover,.notice-reaction-add:focus-visible{color:var(--color-accent);border-color:var(--color-accent)}.notice-emoji-picker{z-index:10;bottom:calc(100% + var(--space-2));gap:var(--space-1);padding:var(--space-2);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;position:absolute;left:0}.notice-emoji-choice{border-radius:var(--radius-sm);cursor:pointer;width:26px;height:26px;font-size:var(--text-md);line-height:var(--leading-none);background:0 0;border:none;padding:0}.notice-emoji-choice:hover,.notice-emoji-choice:focus-visible{background:var(--bg-header)}.notice-reply-compose{gap:var(--space-3);margin-top:var(--space-1);align-items:flex-end;display:flex}.notice-reply-input{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);resize:vertical;flex:1;min-height:32px;font-family:inherit}.notice-reply-input:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 2px #2e7df61a}.notice-attach{gap:var(--space-3);border-radius:var(--radius-md);flex-direction:column;display:flex;position:relative}.notice-attach.drag-over{outline:2px dashed var(--color-accent);outline-offset:3px;background:var(--bg-info)}.notice-attach-bar{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.notice-attach-add{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px dashed var(--border-default);border-radius:var(--radius-md);min-height:30px;color:var(--color-text-muted);font-size:var(--text-xs);cursor:pointer;transition:border-color var(--t-fast), color var(--t-fast), background var(--t-fast);background:0 0;display:inline-flex}.notice-attach-add:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.notice-attach-add:disabled{opacity:.6;cursor:default}.notice-attach-thumb{border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-header);flex-shrink:0;width:56px;height:56px;position:relative;overflow:hidden}.notice-attach-thumb img{object-fit:cover;width:100%;height:100%;display:block}.notice-attach-remove{top:var(--space-1);right:var(--space-1);border-radius:var(--radius-sm);color:#fff;cursor:pointer;background:#0f172a9e;border:none;justify-content:center;align-items:center;width:18px;height:18px;padding:0;display:inline-flex;position:absolute}.notice-attach-remove:hover{background:#0f172ad1}.notice-attach-images{gap:var(--space-2);margin:var(--space-3) 0 var(--space-1);flex-wrap:wrap;display:flex}.notice-attach-image{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-header);cursor:zoom-in;width:104px;height:104px;transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:0;overflow:hidden}.notice-attach-image:hover{border-color:var(--accent-300);box-shadow:var(--shadow-xs)}.notice-attach-image img{object-fit:cover;width:100%;height:100%;display:block}.notice-attach-images--reply .notice-attach-image{width:84px;height:84px}.notice-item>.notice-attach-images{padding-left:var(--space-4);padding-right:var(--space-4)}.mention-input-wrapper{flex:1;display:flex;position:relative}.mention-input-wrapper>textarea{flex:1;min-width:0}.mention-dropdown{left:0;top:calc(100% + var(--space-1));z-index:30;background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:180px;max-width:260px;box-shadow:var(--shadow-lg);padding:var(--space-2);flex-direction:column;gap:1px;max-height:240px;display:flex;position:absolute;overflow-y:auto}.mention-dropdown-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;display:flex}.mention-dropdown-item.active,.mention-dropdown-item:hover,.mention-dropdown-item:focus-visible{background:var(--bg-hover);color:var(--accent-700)}.mention-dropdown-at{font-weight:var(--weight-bold);color:var(--color-accent);opacity:.85}.mention-dropdown-name{font-weight:var(--weight-semibold)}.notification-bell{align-items:center;display:inline-flex;position:relative}.notification-bell-btn,.app-header-shortcuts-btn{width:var(--space-15);height:var(--space-15);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:background var(--t-base), border-color var(--t-base), color var(--t-base);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.app-header-shortcuts-btn kbd{font-family:inherit;font-size:var(--text-md);font-weight:var(--weight-bold);line-height:var(--leading-none)}.app-header-shortcuts-btn:hover,.app-header-shortcuts-btn:focus-visible{color:var(--color-accent);background:#2e7df614;border-color:#2e7df626}@media (width<=640px){.app-header-shortcuts-btn{display:none}}.notification-bell-btn:hover,.notification-bell-btn:focus-visible{background:var(--bg-hover);color:var(--color-accent);border-color:var(--accent-glow-mid)}.notification-bell-btn.has-unread{color:var(--color-accent)}.notification-bell-badge{min-width:16px;height:var(--space-8);padding:0 var(--space-2);background:var(--color-danger);color:var(--color-text-on-accent);font-size:var(--text-3xs);font-weight:var(--weight-bold);border-radius:var(--radius-pill);text-align:center;letter-spacing:-.3px;line-height:16px;position:absolute;top:-2px;right:-2px}.notification-dropdown{top:calc(100% + var(--space-3));z-index:var(--z-sticky);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:320px;max-height:420px;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:absolute;right:0;overflow:hidden}@media (width<=640px){.notification-dropdown{left:max(var(--space-4), env(safe-area-inset-left));right:max(var(--space-4), env(safe-area-inset-right));top:calc(var(--header-h) + var(--space-3));width:auto;max-height:min(70dvh,560px);position:fixed}}.notification-dropdown-head{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);justify-content:space-between;align-items:center;display:flex}.notification-mark-read{color:var(--accent-700);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none}.notification-mark-read:hover,.notification-mark-read:focus-visible{background:var(--bg-selected)}.notification-perm-prompt{margin:var(--space-4) var(--space-5) 0;padding:var(--space-3) var(--space-5);background:var(--bg-selected);border:1px dashed var(--accent-200);border-radius:var(--radius-md);color:var(--accent-700);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;text-align:left}.notification-ooo-banner{margin:var(--space-4) var(--space-5) 0;padding:var(--space-3) var(--space-5);background:var(--amber-100);border:1px solid var(--amber-300);border-radius:var(--radius-md);color:var(--amber-900);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.notification-ios-guide{margin:var(--space-4) var(--space-5) 0;padding:var(--space-4) var(--space-14) var(--space-5) var(--space-5);background:var(--bg-info);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-xs);line-height:var(--leading-normal);position:relative}.notification-ios-guide strong{margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--color-accent);display:block}.notification-ios-guide ol{padding-left:var(--space-9);margin:0}.notification-ios-guide li{margin:1px 0}.notification-ios-guide-close{top:var(--space-2);right:var(--space-2);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);color:var(--color-text-muted);background:0 0;border:none;position:absolute}.notification-ios-guide-close:hover,.notification-ios-guide-close:focus-visible{background:var(--bg-hover);color:var(--color-text)}.mention-dropdown-ooo{font-size:var(--text-2xs);color:var(--amber-800);background:var(--amber-100);border-radius:var(--radius-sm);padding:1px var(--space-3);font-weight:var(--weight-medium);margin-left:auto}.ooo-help{margin:0 0 var(--space-6);padding:var(--space-4) var(--space-5);background:var(--bg-header);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal)}.ooo-row{gap:var(--space-4);margin-bottom:var(--space-4);grid-template-columns:80px 1fr;align-items:center;display:grid}.ooo-row label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.ooo-row input,.ooo-row select{padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-base);width:100%;font-family:inherit}.ooo-active-badge{margin-left:var(--space-3);padding:1px var(--space-3);border-radius:var(--radius-lg);background:var(--red-200);color:var(--color-danger);font-size:var(--text-3xs);font-weight:var(--weight-bold);vertical-align:middle;display:inline-block}.notification-perm-prompt:hover,.notification-perm-prompt:focus-visible{background:var(--accent-100)}.notification-perm-denied{margin:var(--space-4) var(--space-5) 0;padding:var(--space-3) var(--space-5);background:var(--red-50);border:1px solid var(--red-300);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--text-xs);line-height:var(--leading-snug)}.notification-dropdown-list{padding:var(--space-2);flex:1;overflow-y:auto}.notification-dropdown-all{width:100%;padding:var(--space-4) var(--space-6);border:none;border-top:1px solid var(--border-default);color:var(--accent-700);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-align:center;cursor:pointer;background:0 0;flex:none}.notification-dropdown-all:hover,.notification-dropdown-all:focus-visible{background:var(--bg-selected)}.notification-empty{padding:var(--space-12) var(--space-6);text-align:center;color:var(--color-text-faint);font-size:var(--text-sm)}.notification-item{gap:var(--space-1);width:100%;padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);text-align:left;cursor:pointer;transition:background var(--t-fast);border:none;border-bottom:1px solid var(--slate-100);background:0 0;flex-direction:column;display:flex}.notification-item:last-child{border-bottom:none}.notification-item:hover,.notification-item:focus-visible{background:var(--bg-panel)}.notification-item.unread{background:var(--bg-hover)}.notification-item.unread:hover,.notification-item.unread:focus-visible{background:var(--accent-100)}.notification-item-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-text);display:flex}.notification-item-time{font-size:var(--text-2xs);color:var(--color-text-faint);flex-shrink:0}.notification-item-notice{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap;display:inline-flex;overflow:hidden}.notification-item-body{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-normal);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.inbox-scroll{flex:1;width:100%;min-height:0;overflow-y:auto}@media (width<=640px){.inbox-scroll{flex:none;overflow-y:visible}}.inbox-page{max-width:760px;padding:var(--space-6) var(--space-5) var(--space-10);margin:0 auto}.inbox-page-head{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);display:flex}.inbox-page-title{align-items:center;gap:var(--space-2);font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text);margin:0;display:flex}.inbox-page-badge{min-width:22px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--accent-500);color:var(--color-text-on-accent);font-size:var(--text-xs);font-weight:var(--weight-bold);justify-content:center;align-items:center;display:inline-flex}.inbox-ooo-banner{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-md);background:var(--bg-hover);color:var(--color-text-muted);font-size:var(--text-sm);display:flex}.inbox-list{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.inbox-item-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);word-break:keep-all}.notice-reply-edit{gap:var(--space-2);flex-direction:column;display:flex}.notice-reply-edit-actions{gap:var(--space-2);justify-content:flex-end;display:flex}.notice-more-hint{text-align:center;font-size:var(--text-xs);color:var(--color-text-faint);padding:var(--space-4) 0}@media (width<=640px){.home-two-col{grid-template-columns:1fr}.home-page{padding:var(--space-8) var(--space-8) calc(56px + env(safe-area-inset-bottom,0px) + var(--space-4))}}.app-external-link{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);height:var(--space-16);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;transition:background var(--t-base), border-color var(--t-base), color var(--t-base);background:0 0;text-decoration:none;display:inline-flex}.app-external-link:hover,.app-external-link:focus-visible{background:var(--bg-hover);border-color:var(--color-accent);color:var(--color-accent)}.app-external-link-icon{opacity:.6;transition:opacity var(--t-base)}.app-external-link:hover .app-external-link-icon{opacity:1}.header-install-btn{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);height:var(--space-16);background:var(--accent-glow-soft);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;transition:background var(--t-base), border-color var(--t-base);font-family:inherit;display:inline-flex}.header-install-btn:hover,.header-install-btn:focus-visible{background:var(--accent-glow-mid);outline:none}@media (width<=640px){.header-install-btn{padding:var(--space-3) var(--space-4);min-height:var(--tap-min);min-width:var(--tap-min);justify-content:center}.header-install-btn-text{display:none}}.app-header-divider{width:1px;height:var(--space-12);background:var(--border-default);margin:0 var(--space-2);flex-shrink:0}.app-mode-tabs{align-items:stretch;gap:var(--space-1);scrollbar-width:none;flex-shrink:1;min-width:0;height:100%;display:flex;overflow-x:auto}.app-mode-tabs::-webkit-scrollbar{display:none}.app-mode-tabs>.app-mode-tab:first-child{padding-left:var(--space-5)}@media (width<=1600px){.app-mode-tabs .app-mode-tab{padding:0 var(--space-5);gap:var(--space-2)}.app-mode-tabs>.app-mode-tab:first-child{padding-left:var(--space-3)}.app-header-actions{gap:var(--space-3)!important}.app-global-search-kbd{display:none}}.app-mode-tab{align-items:center;gap:var(--space-3);height:100%;padding:0 var(--space-7);color:var(--color-text-muted);font-family:Inter,Pretendard,sans-serif;font-size:var(--text-base);font-weight:var(--weight-medium);letter-spacing:-.01em;cursor:pointer;white-space:nowrap;transition:color var(--t-base), background var(--t-base);background:0 0;border:none;border-radius:0;flex-shrink:0;display:inline-flex;position:relative}.app-mode-tab:after{content:"";left:var(--space-5);right:var(--space-5);height:var(--space-1);transition:background var(--t-base);background:0 0;border-radius:2px 2px 0 0;position:absolute;bottom:0}.app-mode-tab:hover,.app-mode-tab:focus-visible{color:var(--color-text);background:var(--bg-hover)}.app-mode-tab.active{color:var(--accent-700);font-weight:var(--weight-semibold)}.app-mode-tab.active:after{background:var(--color-accent)}.app-mode-tab-label{white-space:nowrap}.guest-home{padding:var(--space-16) var(--space-8) var(--space-20);align-items:center;gap:var(--space-12);flex-direction:column;display:flex;overflow:auto}.guest-home-head{text-align:center;max-width:720px}.guest-home-affil{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-2)}.guest-home-head h1{font-size:var(--text-2xl);margin:0 0 var(--space-4);color:var(--color-text)}.guest-home-head p{color:var(--color-text-muted);font-size:var(--text-base);line-height:var(--leading-relaxed);margin:0}.guest-home-head strong{color:var(--color-text);font-weight:var(--weight-semibold)}.guest-home-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));width:100%;max-width:980px;display:grid}.guest-home-upcoming{width:100%;max-width:980px;padding:var(--space-6) var(--space-8);border:1px solid var(--border-default);border-radius:var(--radius-2xl);background:var(--bg-panel)}.guest-home-upcoming-head{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);margin-bottom:var(--space-4);display:flex}.guest-home-upcoming-sub{font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--color-text-muted);margin-left:var(--space-2)}.guest-home-upcoming-empty{font-size:var(--text-sm);color:var(--color-text-muted)}.guest-home-upcoming-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.guest-home-upcoming-list li+li{border-top:1px solid var(--border-subtle)}.guest-home-upcoming-list button{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-3) var(--space-2);min-height:var(--tap-min,44px);cursor:pointer;text-align:left;font-size:var(--text-sm);color:var(--color-text);border-radius:var(--radius-sm);background:0 0;border:none;display:flex}.guest-home-upcoming-list button:hover{background:var(--bg-hover)}.guest-home-upcoming-date{font-weight:var(--weight-semibold);color:var(--color-accent);font-variant-numeric:tabular-nums;flex:none}.guest-home-upcoming-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.guest-home-upcoming-from{align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);flex:none;display:inline-flex}.guest-home-upcoming-cal{padding:0 var(--space-2);border-radius:var(--radius-pill);border:1px solid var(--border-default);font-size:var(--text-xs);color:var(--color-text-muted);background:var(--bg-app);white-space:nowrap;flex:none}.guest-home-bk{width:100%;max-width:980px;padding:var(--space-6) var(--space-8);border:1px solid var(--border-default);border-radius:var(--radius-2xl);background:var(--bg-panel);cursor:pointer;text-align:left;transition:border-color .1s,box-shadow .1s}.guest-home-bk:hover{border-color:var(--accent-500);box-shadow:var(--shadow-md)}.guest-home-bk-row{align-items:center;gap:var(--space-6);flex-wrap:wrap;display:flex}.guest-home-bk-stat{font-size:var(--text-sm);color:var(--color-text-muted)}.guest-home-bk-stat strong{color:var(--color-text);font-variant-numeric:tabular-nums}.guest-home-bk-stat strong.is-over{color:var(--color-danger)}.guest-home-bk-sub{font-size:var(--text-xs);color:var(--color-text-muted)}.guest-home-bk-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-medium);border:1px solid var(--border-default);color:var(--color-text-muted);background:var(--bg-app);margin-left:auto}.guest-home-bk-badge.is-ok{color:var(--green-700);border-color:var(--green-500);background:var(--bg-success)}.guest-home-bk-badge.is-warn{color:var(--amber-700);border-color:var(--amber-400)}.guest-home-bk-badge.is-danger{color:var(--color-danger);border-color:var(--color-danger)}.guest-home-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-10) var(--space-10) var(--space-12);border-radius:var(--radius-2xl);border:1px solid var(--border-default);background:var(--bg-app);cursor:pointer;text-align:left;flex-direction:column;transition:border-color .1s,box-shadow .1s,transform 60ms;display:flex;position:relative}.guest-home-card:hover{border-color:var(--accent-500);box-shadow:var(--shadow-md);transform:translateY(-2px)}.guest-home-card:active{transform:translateY(0)}.guest-home-card-icon{color:var(--color-text-muted);margin-bottom:var(--space-2);display:inline-flex}.guest-home-card-label{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.guest-home-card-desc{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal)}.guest-home-card-status{align-items:center;gap:var(--space-3);margin-top:var(--space-3);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--bg-panel);border:1px solid var(--border-default);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);display:inline-flex}.guest-home-card-status.is-on,.guest-home-card-status.is-live{color:var(--green-700);border-color:var(--green-500);background:var(--bg-success)}.guest-home-card-status.is-live{font-weight:var(--weight-semibold)}.guest-home-card-dot{border-radius:var(--radius-full);background:var(--slate-300);flex:none;width:7px;height:7px}.guest-home-card-status.is-on .guest-home-card-dot{background:var(--green-500)}.guest-home-card-status.is-live .guest-home-card-dot{background:var(--green-500);box-shadow:0 0 0 3px var(--bg-success);animation:1.1s ease-in-out infinite intercom-pulse}.guest-home-card-go{top:var(--space-8);right:var(--space-8);color:var(--color-text-faint);opacity:0;transition:opacity .1s;position:absolute}.guest-home-card:hover .guest-home-card-go{opacity:1}.guest-home-card.is-feature{border-color:var(--accent-200);background:linear-gradient(180deg, var(--accent-50) 0%, var(--bg-app) 62%)}.guest-home-card.is-feature .guest-home-card-icon{color:var(--accent-600)}.guest-home-card.is-feature:hover{border-color:var(--accent-500)}@media (width<=640px){.guest-home{padding:var(--space-10) var(--space-5) var(--space-16);gap:var(--space-8)}.guest-home-grid{gap:var(--space-4);grid-template-columns:1fr}.guest-home-card{padding:var(--space-8)}}.wm-home{padding-top:var(--space-8);gap:var(--space-6)}.wm-home-empty{color:var(--color-text-muted);font-size:var(--text-sm);text-align:center;padding:var(--space-12) var(--space-6)}.wm-hero-card{align-items:center;gap:var(--space-6);width:100%;max-width:980px;padding:var(--space-8) var(--space-10);flex-direction:row}.wm-hero-card .guest-home-card-icon{flex:none;margin-bottom:0}.wm-hero-text{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.wm-hero-card .guest-home-card-status{flex:none;margin-top:0}@media (width<=640px){.wm-hero-card{gap:var(--space-3) var(--space-5);padding:var(--space-7) var(--space-8);flex-wrap:wrap}.wm-hero-text{flex-basis:60%}}.weather-meta{font-size:var(--text-xs);color:var(--color-text-faint);font-variant-numeric:tabular-nums;white-space:nowrap}.weather-meta.is-stale{color:var(--color-warning);font-weight:var(--weight-semibold)}.weather-now{align-items:center;gap:var(--space-4);min-width:0;display:flex}.weather-now-icon{color:var(--color-text-muted);flex:none}.weather-now.is-warn .weather-now-icon{color:var(--color-warning)}.weather-now-temp{font-size:var(--text-3xl);font-weight:var(--weight-semibold);color:var(--color-text);font-variant-numeric:tabular-nums;line-height:1}.weather-now-label{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.weather-now.is-warn .weather-now-label{color:var(--color-warning);font-weight:var(--weight-semibold)}.weather-now-sub{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-text-faint)}.weather-timeline{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--border-default);grid-template-columns:repeat(5,1fr);display:grid}.weather-slot{align-items:center;gap:var(--space-2);min-width:0;color:var(--color-text-muted);flex-direction:column;display:flex}.weather-slot.is-warn{color:var(--color-warning)}.weather-slot-time{font-size:var(--text-2xs);color:var(--color-text-faint);white-space:nowrap}.weather-slot-pop,.weather-slot-range{font-size:var(--text-xs);font-variant-numeric:tabular-nums}.weather-slot-pop.is-high{font-weight:var(--weight-bold)}.weather-slot-tomorrow{border-left:1px solid var(--border-default)}.weather-skeleton{gap:var(--space-4);flex-direction:column;display:flex}.weather-skel-now,.weather-skel-sub,.weather-skel-timeline{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--bg-panel) 0%, var(--bg-hover) 50%, var(--bg-panel) 100%);animation:tv-now-shimmer var(--dur-shimmer) ease-in-out infinite;background-size:200% 100%;display:block}.weather-skel-now{height:var(--space-12);width:60%}.weather-skel-sub{height:var(--space-6);width:45%}.weather-skel-timeline{height:var(--space-16);width:100%}@media (prefers-reduced-motion:reduce){.weather-skel-now,.weather-skel-sub,.weather-skel-timeline{animation:none}}@media (width<=640px){.weather-now-temp{font-size:var(--text-2xl)}.weather-timeline{margin-top:var(--space-4)}}.weather-head-right{align-items:center;gap:var(--space-3);min-width:0;display:inline-flex}.weather-now-inline-sub{font-size:var(--text-xs);color:var(--color-text-faint);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;overflow:hidden}.weather-widget-hours{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border-default)}.weather-widget-days{margin-top:var(--space-2)}.weather-widget-days .weather-detail-day{font-size:var(--text-xs);padding:var(--space-2) 0;grid-template-columns:64px 1fr 40px 76px}@media (width<=640px){.weather-widget-detail .weather-now{flex-wrap:wrap}.weather-now-inline-sub{flex-basis:100%;margin-left:0}}.weather-detail-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal-elevated);padding:var(--space-12);animation:hero-fade-in var(--dur-fast) ease-out;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.weather-detail{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:min(480px,100%);max-height:var(--modal-max-h);flex-direction:column;display:flex;overflow:hidden}.weather-detail-head{align-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-7);border-bottom:1px solid var(--border-default);display:flex}.weather-detail-title{font-size:var(--text-md);font-weight:var(--weight-semibold);flex:1;margin:0}.weather-detail-site-seg{gap:var(--space-1);background:var(--bg-panel);border-radius:var(--radius-md);padding:var(--space-1);display:inline-flex}.weather-detail-site-btn{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none}.weather-detail-site-btn.active{background:var(--bg-app);color:var(--color-text);font-weight:var(--weight-semibold);box-shadow:var(--shadow-xs)}.weather-detail-close{color:var(--color-text-muted);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;display:inline-flex}.weather-detail-close:hover{background:var(--bg-hover);color:var(--color-text)}.weather-detail-body{padding:var(--space-6) var(--space-7);overflow-y:auto}.weather-detail-loading{gap:var(--space-5);flex-direction:column;display:flex}.weather-detail-now{align-items:center;gap:var(--space-5);display:flex}.weather-detail-now-icon{color:var(--color-text-muted);flex:none}.weather-detail-now.is-warn .weather-detail-now-icon{color:var(--color-warning)}.weather-detail-now-temp{font-size:var(--text-3xl);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;line-height:1}.weather-detail-now-text{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.weather-detail-now-label{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-text-muted)}.weather-detail-now.is-warn .weather-detail-now-label{color:var(--color-warning);font-weight:var(--weight-semibold)}.weather-detail-now-sub{font-size:var(--text-sm);color:var(--color-text-faint)}.weather-detail-sec{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);margin:var(--space-7) 0 var(--space-3)}.weather-detail-sec-hint{font-size:var(--text-2xs);font-weight:var(--weight-normal);color:var(--color-text-faint);margin-left:var(--space-2)}.weather-detail-hours{gap:var(--space-2);padding-bottom:var(--space-2);scrollbar-width:thin;display:flex;overflow-x:auto}.weather-detail-hour{align-items:center;gap:var(--space-2);width:44px;padding:var(--space-2) 0;color:var(--color-text-muted);border-radius:var(--radius-sm);flex-direction:column;flex:none;display:flex}.weather-detail-hour.is-warn{color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 6%, transparent)}.weather-detail-hour-time{font-size:var(--text-2xs);color:var(--color-text-faint);white-space:nowrap}.weather-detail-hour-temp{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text);font-variant-numeric:tabular-nums}.weather-detail-hour-pop{font-size:var(--text-2xs);font-variant-numeric:tabular-nums;color:var(--color-accent)}.weather-detail-hour-pop.is-high{font-weight:var(--weight-bold)}.weather-detail-days{flex-direction:column;display:flex}.weather-detail-day{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--border-default);font-size:var(--text-sm);grid-template-columns:72px 1fr 48px 88px;display:grid}.weather-detail-day:first-child{border-top:none}.weather-detail-day-name{color:var(--color-text);font-weight:var(--weight-medium);white-space:nowrap}.weather-detail-day-cond{align-items:center;gap:var(--space-2);color:var(--color-text-muted);min-width:0;display:inline-flex}.weather-detail-day.is-warn .weather-detail-day-cond{color:var(--color-warning)}.weather-detail-day-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.weather-detail-day-pop{font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--color-accent);text-align:right}.weather-detail-day-pop.is-high{font-weight:var(--weight-bold)}.weather-detail-day-range{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.weather-detail-day-range .min{color:var(--color-accent)}.weather-detail-day-range .max{color:var(--color-text);font-weight:var(--weight-medium)}.weather-detail-foot{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-default);font-size:var(--text-2xs);color:var(--color-text-faint)}@media (width<=640px){.weather-detail-backdrop{align-items:flex-end;padding:0}.weather-detail{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:86dvh}.weather-detail-day{grid-template-columns:64px 1fr 40px 76px}.weather-detail-site-btn,.weather-detail-close{position:relative}.weather-detail-site-btn:before{content:"";position:absolute;inset:-9px 0}.weather-detail-close:before{content:"";position:absolute;inset:-8px}}@keyframes intercom-pulse{50%{opacity:.4}}.intercom-widget-summary{align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-2) 0 var(--space-3);display:flex}.intercom-widget-summary strong{color:var(--green-700);font-weight:var(--weight-semibold)}.intercom-widget-pulse{border-radius:var(--radius-full);background:var(--slate-300);flex:none;width:8px;height:8px}.intercom-widget-pulse.is-live{background:var(--green-500);box-shadow:0 0 0 3px var(--bg-success);animation:1.1s ease-in-out infinite intercom-pulse}.intercom-widget-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin:0;padding:0;list-style:none;display:grid}.intercom-widget-card{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-app);cursor:pointer;text-align:left;min-height:58px;transition:border-color .1s,background .1s,box-shadow .1s,transform 60ms;display:flex}.intercom-widget-card:hover{border-color:var(--accent-500);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.intercom-widget-card:active{transform:translateY(0)}.intercom-widget-card.is-live{border-color:var(--green-500);background:var(--bg-success)}.intercom-widget-tile{border-radius:var(--radius-md);background:var(--bg-panel);width:36px;height:36px;color:var(--color-text-faint);border:1px solid var(--border-default);flex:none;justify-content:center;align-items:center;display:inline-flex}.intercom-widget-card.is-on .intercom-widget-tile,.intercom-widget-card.is-live .intercom-widget-tile{background:var(--green-100);color:var(--green-700);border-color:var(--green-500)}.intercom-widget-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.intercom-widget-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.intercom-widget-status{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);display:inline-flex}.intercom-widget-dot{border-radius:var(--radius-full);background:var(--slate-300);flex:none;width:7px;height:7px}.intercom-widget-card.is-on .intercom-widget-dot{background:var(--green-500)}.intercom-widget-card.is-live .intercom-widget-dot{background:var(--green-500);box-shadow:0 0 0 3px var(--bg-success);animation:1.1s ease-in-out infinite intercom-pulse}.intercom-widget-card.is-live .intercom-widget-status{color:var(--green-700);font-weight:var(--weight-semibold)}.intercom-widget-card>svg{color:var(--color-text-faint);flex:none}.intercom-widget-skel{border-radius:var(--radius-lg);background:var(--bg-panel);min-height:58px}@media (prefers-reduced-motion:reduce){.intercom-widget-pulse.is-live,.intercom-widget-card.is-live .intercom-widget-dot{animation:none}}.bk-page{padding:var(--space-10) var(--space-12) var(--space-16);max-width:1400px;color:var(--color-text);margin:0 auto;font-family:Inter,Pretendard,sans-serif}.bk-page-head{align-items:center;gap:var(--space-8);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.bk-page-title{align-items:center;gap:var(--space-5);display:flex}.bk-page-title h1{font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.015em;margin:0}.bk-page-actions{align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-left:auto;display:flex}.bk-year-picker{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);display:inline-flex}.bk-year-picker select{height:var(--space-15);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-app);font-size:var(--text-base);padding:0 8px;font-family:inherit}.bk-perm-chip{padding:var(--space-1) var(--space-5);border-radius:var(--radius-xl);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:-.01em;background:var(--bg-header);color:var(--color-text-muted);align-items:center;display:inline-flex}.bk-perm-chip[data-edit=yes]{background:var(--bg-success);color:var(--color-success)}.bk-muted{color:var(--color-text-muted);font-size:var(--text-sm)}.bk-error{padding:var(--space-5) var(--space-7);margin-bottom:var(--space-6);border:1px solid var(--color-danger);background:var(--bg-danger);color:var(--color-danger);border-radius:var(--radius-md);font-size:var(--text-base)}.bk-loading{align-items:center;gap:var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);padding:8px 0;display:inline-flex}.bk-spin{animation:bk-spin var(--dur-spin) linear infinite}@keyframes bk-spin{to{transform:rotate(360deg)}}.bk-summary-strip{gap:var(--space-5);margin-bottom:var(--space-8);padding:var(--space-7);border:1px solid var(--border-default);border-radius:var(--radius-xl);background:linear-gradient(135deg,#f8fafc 0%,#eef2ff 100%);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.bk-stat{gap:var(--space-2);flex-direction:column;display:flex}.bk-stat-label{font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:-.01em}.bk-stat strong{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text)}.bk-body{gap:var(--space-8);flex-direction:column;display:flex}.bk-card{border:1px solid var(--border-default);border-radius:var(--radius-xl);background:var(--bg-app);padding:var(--space-8)}.bk-card-head{align-items:center;gap:var(--space-6);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.bk-card-head h3{font-size:var(--text-md);font-weight:var(--weight-semibold);margin:0}.bk-card-head .bk-muted{margin-left:auto}.bk-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.bk-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.bk-table th,.bk-table td{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-default);text-align:left;vertical-align:top}.bk-table th{background:var(--bg-panel);color:var(--color-text-muted);font-weight:var(--weight-semibold);font-size:var(--text-xs);letter-spacing:-.01em;white-space:nowrap;border-bottom:1px solid var(--border-default)}.bk-table th.num,.bk-table td.num{text-align:right;font-variant-numeric:tabular-nums}.bk-table tfoot td{background:var(--bg-panel);border-top:1px solid var(--border-default);font-weight:var(--weight-semibold)}.bk-row-clickable{cursor:pointer}.bk-row-clickable:hover,.bk-row-clickable:focus-visible{background:var(--bg-panel)}.bk-empty{text-align:center;color:var(--color-text-faint);padding:20px 0;font-style:italic}.bk-entry-cards{gap:var(--space-5);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bk-entry-card{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-7);gap:var(--space-3);font-size:var(--text-base);color:var(--color-text);flex-direction:column;display:flex}.bk-entry-card-empty{text-align:center;color:var(--color-text-faint);padding:var(--space-12) var(--space-6);font-style:italic}.bk-entry-card-head{align-items:baseline;gap:var(--space-4);display:flex}.bk-entry-card-no{font-size:var(--text-xs);color:var(--color-text-faint);font-variant-numeric:tabular-nums}.bk-entry-card-date{font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.bk-entry-card-amount{font-weight:var(--weight-bold);font-size:var(--text-md);color:var(--color-text);margin-left:auto}.bk-entry-card-place{font-weight:var(--weight-semibold);font-size:var(--text-base)}.bk-entry-card-meta{gap:var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.bk-entry-card-reason,.bk-entry-card-attendees{font-size:var(--text-sm);color:var(--color-text-muted)}.bk-entry-card-actions{gap:var(--space-3);margin-top:var(--space-2);border-top:1px dashed var(--border-default);padding-top:var(--space-4);display:flex}.bk-entry-card-actions .ui-btn{flex:1;justify-content:center}@media (width<=640px){.bk-page{padding:var(--space-7) var(--space-6) var(--space-12)}.bk-page-title h1{font-size:var(--text-xl)}.bk-card{padding:var(--space-6)}.bk-card-head h3{font-size:var(--text-md)}.bk-summary-strip{padding:var(--space-6);gap:var(--space-4)}.bk-stat strong{font-size:var(--text-md)}}.bk-row-actions{gap:var(--space-2);display:flex}.bk-btn{align-items:center;gap:var(--space-3);height:var(--space-15);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-app);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--t-base), border-color var(--t-base);padding:0 12px;font-family:inherit;display:inline-flex}.bk-btn:hover:not(:disabled),.bk-btn:focus-visible:not(:disabled){background:var(--bg-panel);border-color:var(--color-text-faint)}.bk-btn:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.bk-btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent)}.bk-btn-primary:hover:not(:disabled),.bk-btn-primary:focus-visible:not(:disabled){background:#1d6de7;border-color:#1d6de7}.bk-pill{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-xl);font-size:var(--text-2xs);font-weight:var(--weight-semibold);line-height:var(--leading-none);display:inline-flex}.bk-pill-ok{background:var(--bg-success);color:var(--color-success)}.bk-pill-muted{background:var(--bg-header);color:var(--color-text-muted)}.bk-pill-coffee{background:var(--amber-100);color:var(--amber-800)}.bk-month-tabs{gap:var(--space-1);flex-wrap:wrap;display:flex}.bk-month-tab{padding:var(--space-2) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-app);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;font-family:inherit}.bk-month-tab:hover,.bk-month-tab:focus-visible{background:var(--bg-header)}.bk-month-tab.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent);font-weight:var(--weight-semibold)}.bk-chip{padding:var(--space-3) var(--space-6);border:1px solid var(--border-default);background:var(--bg-app);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--t-base), border-color var(--t-base), color var(--t-base);border-radius:18px;min-height:32px;font-family:inherit}.bk-chip:hover{background:var(--bg-header);color:var(--color-text)}.bk-chip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.bk-chip:active{transform:translateY(var(--press-y))}.bk-chip-active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent);font-weight:var(--weight-semibold)}.bk-chip-active:hover{background:var(--color-accent);color:var(--color-text-on-accent)}.bk-segment{gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.bk-alert-stack{gap:var(--space-4);margin-bottom:var(--space-6);flex-direction:column;display:flex}.bk-alert{gap:var(--space-5);padding:var(--space-5) var(--space-7);border-radius:var(--radius-lg);font-size:var(--text-sm);line-height:var(--leading-snug);border:1px solid #0000;align-items:flex-start;display:flex}.bk-alert-icon{margin-top:var(--space-1);flex-shrink:0}.bk-alert-body{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.bk-alert-title{font-weight:var(--weight-semibold)}.bk-alert-text{color:inherit;opacity:.9}.bk-alert-danger{background:var(--bg-danger);border-color:var(--color-danger);color:var(--color-danger)}.bk-alert-warn{background:var(--amber-100);border-color:var(--amber-500);color:var(--amber-800)}.bk-alert-info{background:var(--bg-info);border-color:var(--color-accent);color:var(--color-accent)}.bk-diag-grid{gap:var(--space-6);margin-top:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.bk-diag-cell{gap:var(--space-2);padding:var(--space-6) var(--space-7);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-app);flex-direction:column;display:flex}.bk-diag-label{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-medium)}.bk-diag-value{font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:-.01em}.bk-diag-sub{font-size:var(--text-xs);font-weight:var(--weight-medium)}.bk-diag-sub[data-tone=saving]{color:var(--color-success)}.bk-diag-sub[data-tone=over]{color:var(--color-danger)}.bk-diag-sub[data-tone=normal]{color:var(--color-text-muted)}.bk-diag-saving{color:var(--color-success)}.bk-diag-over{color:var(--color-danger)}.bk-insights-split{gap:var(--space-6);margin-top:var(--space-6);grid-template-columns:1fr 1fr;display:grid}.bk-insights-block{gap:var(--space-4);padding:var(--space-6) var(--space-7);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-app);flex-direction:column;min-width:0;display:flex}.bk-insights-block-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);align-items:center;display:flex}.bk-insights-busiest{font-weight:var(--weight-normal);margin-left:auto}.bk-place-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bk-place-row{align-items:center;gap:var(--space-4);min-width:0;display:flex}.bk-place-rank{border-radius:var(--radius-full);background:var(--bg-hover);width:1.5em;height:1.5em;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-bold);flex:none;justify-content:center;align-items:center;display:inline-flex}.bk-place-rank[data-top=true]{color:var(--color-accent)}.bk-place-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:var(--weight-medium);word-break:keep-all;flex:auto;overflow:hidden}.bk-place-meta{font-size:var(--text-xs);color:var(--color-text-muted);flex:none}.bk-weekday-bars{gap:var(--space-2);flex:auto;grid-template-columns:repeat(7,1fr);align-items:end;display:grid}.bk-weekday-col{align-items:center;gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.bk-weekday-count{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);height:1em;line-height:1}.bk-weekday-track{justify-content:center;align-items:flex-end;width:100%;height:64px;display:flex}.bk-weekday-fill{border-radius:var(--radius-sm);background:var(--color-accent);width:60%;max-width:18px;transition:height .2s}.bk-weekday-fill[data-busiest=true]{background:var(--color-success)}.bk-weekday-fill[data-weekend=true]{opacity:.5}.bk-weekday-label{font-size:var(--text-xs);color:var(--color-text-muted)}.bk-weekday-label[data-weekend=true]{color:var(--color-danger)}@media (width<=640px){.bk-insights-split{grid-template-columns:1fr}}.bk-mini-chart{margin-top:var(--space-2);display:block}.bk-autocomplete{position:relative}.bk-autocomplete>input{padding-right:26px}.bk-autocomplete-chevron{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.bk-autocomplete-list{background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:var(--z-sticky);max-height:240px;margin:0;padding:4px 0;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto}.bk-autocomplete-option{padding:var(--space-4) var(--space-6);font-size:var(--text-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.bk-autocomplete-option:hover{background:var(--bg-header)}.bk-autocomplete-option-active{background:var(--bg-success);color:var(--color-success);font-weight:var(--weight-semibold)}.bk-autocomplete-option-active:hover{background:var(--bg-success)}.bk-form{margin-top:var(--space-7);padding:var(--space-7);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-panel)}.bk-form h4{font-size:var(--text-base);font-weight:var(--weight-semibold);margin:0 0 10px}.bk-form-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.bk-form-grid label{gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-medium);flex-direction:column;display:flex}.bk-form-grid input[type=date],.bk-form-grid input[type=text],.bk-form-grid input[type=number],.bk-form-grid textarea{height:var(--space-15);padding:0 var(--input-pad-x-sm);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-app);color:var(--color-text);font-size:var(--text-sm);font-family:inherit}.bk-form-grid textarea{height:auto;padding:var(--input-pad-y-sm) var(--input-pad-x-sm)}.bk-form-wide{grid-column:1/-1}.bk-form-check{grid-column:1/-1;align-items:center;flex-direction:row!important;gap:8px!important}.bk-form-check input{width:var(--space-8);height:var(--space-8)}.bk-form-check span{color:var(--color-text);font-weight:var(--weight-medium)}.bk-form-actions{gap:var(--space-4);margin-top:var(--space-6);display:flex}.bk-row-inline{align-items:flex-end;gap:var(--space-5);margin-bottom:var(--space-5);font-size:var(--text-xs);display:flex}.bk-row-inline label{gap:var(--space-2);color:var(--color-text-muted);flex-direction:column;display:flex}.bk-row-inline input{height:var(--space-15);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);padding:0 8px;font-family:inherit}.bk-card-box{margin-bottom:var(--space-7);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-panel)}.bk-card-box.editing{background:var(--bg-app);border-color:var(--border-strong)}.bk-card-box-head{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-7);border-bottom:1px solid var(--border-default);font-size:var(--text-base);display:flex}.bk-card-box-head strong{font-size:var(--text-base)}.bk-card-row-icon{color:var(--color-text-muted)}.bk-card-box-body{gap:var(--space-5) var(--space-10);padding:var(--space-5) var(--space-7) var(--space-6);font-size:var(--text-sm);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.bk-card-field{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.bk-card-field-label{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-medium);letter-spacing:-.01em}.bk-card-field-value{color:var(--color-text);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;align-items:center;gap:var(--space-3);overflow-wrap:anywhere;display:inline-flex}.bk-card-field input[type=text],.bk-card-field input[type=password]{height:var(--space-15);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-app);color:var(--color-text);font-size:var(--text-sm);padding:0 8px;font-family:inherit}.bk-card-box-actions{gap:var(--space-3);padding-top:var(--space-2);border-top:1px dashed var(--border-default);margin-top:var(--space-2);grid-column:1/-1;padding:8px 0 0;display:flex}@media (width<=640px){.bk-card-box-body{gap:var(--space-4);padding:var(--space-4);grid-template-columns:1fr}.bk-card-box-head{padding:var(--space-3) var(--space-4)}}.bk-month-cards{padding:var(--space-4) var(--space-4) var(--space-5);gap:var(--space-3);flex-direction:column;margin:0;list-style:none;display:flex}.bk-month-card{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--bg-app);gap:var(--space-1);flex-direction:column;display:flex}.bk-month-card-head{padding-bottom:var(--space-2);border-bottom:1px dashed var(--border-default);margin-bottom:var(--space-2);justify-content:space-between;align-items:baseline;display:flex}.bk-month-card-row{font-size:var(--text-sm);justify-content:space-between;align-items:baseline;display:flex}.bk-month-card-row>span:first-child{color:var(--color-text-muted)}.bk-quarter-subtotal-card{background:var(--bg-subtle);border-style:dashed}.bk-month-card-total{background:var(--bg-subtle);border-width:2px}.bk-quarter-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.bk-quarter-card{padding:var(--space-6) var(--space-7);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-app);gap:var(--space-3);flex-direction:column;display:flex}.bk-quarter-card.bk-q-ok{background:#f0fdf4;border-color:#bbf7d0}.bk-quarter-card.bk-q-warn{border-color:var(--amber-200);background:var(--amber-50)}.bk-quarter-card.bk-q-danger{background:#fef2f2;border-color:#fecaca}.bk-quarter-card.bk-q-idle{border-color:var(--border-default);background:var(--bg-panel)}.bk-quarter-head{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.bk-quarter-head strong{font-size:var(--text-base)}.bk-quarter-chip{padding:var(--space-1) var(--space-4);border-radius:var(--radius-xl);font-size:var(--text-2xs);font-weight:var(--weight-semibold);line-height:var(--leading-normal)}.bk-quarter-chip.bk-q-ok{color:#15803d;background:#dcfce7}.bk-quarter-chip.bk-q-warn{background:var(--amber-100);color:var(--amber-800)}.bk-quarter-chip.bk-q-danger{background:var(--bg-danger);color:var(--red-600)}.bk-quarter-chip.bk-q-idle{background:var(--bg-header);color:var(--color-text-muted)}.bk-quarter-body{gap:var(--space-1);font-size:var(--text-sm);flex-direction:column;display:flex}.bk-quarter-row{color:var(--color-text-muted);justify-content:space-between;align-items:baseline;display:flex}.bk-quarter-row strong{color:var(--color-text);font-variant-numeric:tabular-nums}.bk-quarter-row.emphasize{border-top:1px solid var(--border-default);border-bottom:1px solid var(--border-default);margin:2px 0;padding:3px 0}.bk-quarter-row.emphasize strong{font-size:var(--text-md);color:var(--color-text)}.bk-table .bk-quarter-subtotal td{background:var(--bg-header);border-top:2px solid var(--border-strong);border-bottom:2px solid var(--border-strong);font-size:var(--text-sm)}.bk-table .bk-quarter-subtotal td:first-child{color:var(--color-text)}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.notice-banner{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6);font-size:var(--text-sm);line-height:var(--leading-snug);border-bottom:1px solid #0000;display:flex}.notice-banner-icon{flex:none}.notice-banner-text{word-break:keep-all;overflow-wrap:break-word;flex:1}.notice-banner-close{width:var(--space-12);height:var(--space-12);color:inherit;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (width<=640px),(pointer:coarse){.notice-banner-close{position:relative}.notice-banner-close:before{content:"";position:absolute;inset:-10px}}.notice-banner-close:hover,.notice-banner-close:focus-visible{background:color-mix(in srgb, currentColor 15%, transparent);outline:none}.notice-banner--info{background:color-mix(in srgb, var(--color-accent) 10%, var(--bg-app));border-bottom-color:color-mix(in srgb, var(--color-accent) 30%, transparent);color:var(--color-text)}.notice-banner--info .notice-banner-icon{color:var(--color-accent)}.notice-banner--warn{background:var(--amber-50);border-bottom-color:var(--amber-200);color:var(--amber-900)}.notice-banner--warn .notice-banner-icon{color:var(--amber-700)}.bk-quarter-card.bk-q-current{outline:2px solid var(--color-warning);outline-offset:-2px;box-shadow:0 0 0 1px color-mix(in srgb, var(--color-warning) 35%, transparent)}.bk-quarter-now{margin-left:var(--space-3);border-radius:var(--radius-lg);background:var(--amber-100);color:var(--amber-800);font-size:var(--text-2xs);font-weight:var(--weight-semibold);vertical-align:2px;padding:1px 6px;display:inline-block}.bk-quarter-gauge{gap:var(--space-2);flex-direction:column;margin:2px 0 4px;display:flex}.bk-quarter-gauge-track{height:var(--space-4);background:var(--slate-200);border-radius:var(--radius-pill);position:relative;overflow:hidden}.bk-quarter-gauge-fill{border-radius:var(--radius-pill);background:var(--slate-400);height:100%;transition:width .24s ease-out}.bk-quarter-gauge-fill.bk-q-ok{background:var(--color-success)}.bk-quarter-gauge-fill.bk-q-warn{background:var(--color-warning)}.bk-quarter-gauge-fill.bk-q-danger{background:var(--color-danger)}.bk-quarter-gauge-fill.bk-q-idle{background:var(--slate-300)}.bk-quarter-gauge-overshoot{background:repeating-linear-gradient(-45deg, var(--color-danger) 0 4px, color-mix(in srgb, var(--color-danger) 60%, white) 4px 8px);border-radius:0 999px 999px 0;height:100%;position:absolute;top:0;right:0}.bk-quarter-gauge-marker{width:var(--space-1);background:var(--slate-700);position:absolute;top:-2px;bottom:-2px;transform:translate(-1px)}.bk-quarter-gauge-meta{font-size:var(--text-xs);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;display:flex}.bk-quarter-gauge-pct{font-weight:var(--weight-bold);color:var(--color-text-muted)}.bk-quarter-gauge-pct[data-status=ok]{color:var(--color-success)}.bk-quarter-gauge-pct[data-status=warn]{color:var(--color-warning)}.bk-quarter-gauge-pct[data-status=danger]{color:var(--color-danger)}.bk-quarter-gauge-pct[data-status=idle]{color:var(--color-text-faint)}.bk-year-gauge .bk-quarter-gauge-track{height:var(--space-7)}.bk-year-gauge .bk-quarter-gauge-meta{font-size:var(--text-sm)}.bk-year-gauge .bk-quarter-gauge-pct{font-size:var(--text-base)}.bk-report{padding:var(--space-8);background:var(--bg-app);font-size:var(--text-sm);color:#111827}.bk-report-header-table,.bk-report-table{border-collapse:collapse;width:100%;margin-bottom:var(--space-4)}.bk-report-header-table th,.bk-report-header-table td,.bk-report-table th,.bk-report-table td{padding:var(--space-2) var(--space-4);vertical-align:middle;border:1px solid #111827}.bk-report-header-table th,.bk-report-table th{text-align:center;font-weight:var(--weight-bold);background:#f2f2f2}.bk-report-table td{font-size:var(--text-sm)}.bk-report-table td.center{text-align:center}.bk-report-table td.num{text-align:right;font-variant-numeric:tabular-nums}.bk-report-table tfoot td{background:#fafafa}.bk-report-month{text-align:center;font-weight:var(--weight-bold);font-size:var(--text-base);margin:6px 0}.bk-report-foot{margin-top:var(--space-5);color:var(--color-text-muted);font-size:var(--text-xs)}.category-page-header{background:var(--bg-app);flex:none;padding:12px 24px 0}.category-page-body{flex:1;min-height:0;overflow:hidden}@media (width<=640px){.category-page-header{padding:8px 12px 0;padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right))}.category-page-body{flex:none;min-height:0;overflow:visible}}.app-mode-tab-icon-wrap{align-items:center;display:inline-flex;position:relative}.app-mode-tab-badge{min-width:16px;height:var(--space-8);border-radius:var(--radius-lg);color:var(--color-text-on-accent);font-size:var(--text-3xs);font-weight:var(--weight-bold);line-height:var(--leading-none);box-shadow:0 0 0 2px var(--bg-app);background:#ef4444;justify-content:center;align-items:center;padding:0 4px;display:inline-flex;position:absolute;top:-6px;right:-8px}.user-menu{position:relative}.user-menu-trigger{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5) var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;transition:background var(--t-base), border-color var(--t-base);background:0 0;border:1px solid #0000;display:inline-flex}.user-menu-trigger:hover,.user-menu-trigger:focus-visible,.user-menu-trigger.open{background:var(--bg-panel);border-color:var(--border-default)}.user-menu-name{white-space:nowrap}.user-menu-chev{color:var(--color-text-faint);transition:transform var(--t-base)}.user-menu-trigger.open .user-menu-chev{transform:rotate(180deg)}.user-menu-dropdown{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:220px;box-shadow:var(--shadow-lg);padding:var(--space-3);z-index:500;position:absolute;top:calc(100% + 6px);right:0}.user-menu-header{align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-5);display:flex}.user-menu-header-text{line-height:var(--leading-snug);flex-direction:column;display:flex}.user-menu-header-text strong{font-size:var(--text-base);color:var(--color-text);font-weight:var(--weight-semibold)}.user-menu-header-text span{font-size:var(--text-xs);color:var(--color-text-faint)}.user-menu-divider{background:var(--bg-header);height:1px;margin:4px 0}.user-menu-item{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4) var(--space-5);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.user-menu-item:hover,.user-menu-item:focus-visible{background:var(--bg-hover)}.user-menu-item-hint{font-size:var(--text-3xs);color:var(--color-text-faint);background:var(--bg-header);border-radius:var(--radius-xs);margin-left:auto;padding:1px 6px}.user-menu-item-kbd{align-items:center;gap:var(--space-1);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-3xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xs);margin-left:auto;padding:1px 6px;display:inline-flex}.user-menu-item-danger{color:var(--color-danger)}.user-menu-item-danger:hover{background:var(--red-100)}.user-menu-theme-row{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);display:flex}.user-menu-theme-label{font-size:var(--text-xs);color:var(--color-text-muted);margin-right:var(--space-2)}.user-menu-theme-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:var(--t-base);background:0 0;flex:1;display:inline-flex}.user-menu-theme-btn:hover,.user-menu-theme-btn:focus-visible{background:var(--bg-hover);color:var(--color-text)}.user-menu-theme-btn.active{background:var(--bg-selected);color:var(--color-accent);border-color:var(--color-accent)}.notice-item.pinned{background:linear-gradient(90deg,#2e7df60d,#0000 80%)}.notice-item.pinned .notice-item-title strong{color:var(--color-text)}.notice-pin-icon{color:var(--color-accent);flex-shrink:0;transform:rotate(35deg)}@media (width<=1500px){.app-global-search-trigger-text{display:none}.app-global-search-trigger{padding:var(--space-3) var(--space-4)}.app-title>span{display:none}}@media (width<=1024px){.app-mode-tab-label{display:none}.app-mode-tab{min-width:var(--tap-min);flex-shrink:0;justify-content:center;padding:0 10px}.app-header-divider{margin:0 4px}.app-mode-tabs{scrollbar-width:none;-ms-overflow-style:none;flex:auto;min-width:0;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 8px calc(100% - 8px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 8px calc(100% - 8px),#0000 100%)}.app-mode-tabs::-webkit-scrollbar{display:none}.app-external-link-text,.user-menu-trigger .user-menu-name{display:none}}@media (width<=640px){.app-header{padding-left:max(10px, env(safe-area-inset-left));padding-right:max(10px, env(safe-area-inset-right));gap:var(--space-2)}.app-title img{width:auto;height:var(--space-14)!important}.app-external-link{padding:var(--space-3) var(--space-4);gap:0}.user-menu-trigger{padding:var(--space-2) var(--space-3) var(--space-2) var(--space-2)}.app-external-link{display:none}.app-title img{height:var(--space-11)!important}.app-header-divider,.user-menu-chev{display:none}}@media (width<=380px){.user-menu-site-chip{display:none}}.gsearch-mark{color:var(--amber-900);font-weight:var(--weight-semibold);background:#facc1573;border-radius:2px;padding:0 1px}.gsearch-item.active{background:var(--bg-selected);box-shadow:inset 2px 0 0 var(--color-accent)}.gsearch-item.active .gsearch-enter{color:var(--color-accent)}.gsearch-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal);animation:gsearch-fade var(--dur-fast) ease-out;justify-content:center;align-items:flex-start;padding-top:10vh;display:flex;position:fixed;inset:0}@keyframes gsearch-fade{0%{opacity:0}to{opacity:1}}.gsearch-modal{width:640px;max-width:calc(100vw - 32px);max-height:var(--modal-max-h);background:var(--bg-app);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);animation:gsearch-pop var(--dur-base) cubic-bezier(.2, .8, .2, 1);flex-direction:column;display:flex;overflow:hidden}@supports not (height:100dvh){.gsearch-modal{max-height:min(72vh,720px)}}@keyframes gsearch-pop{0%{opacity:0;transform:translateY(-10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.gsearch-input-row{align-items:center;gap:var(--space-5);border-bottom:1px solid var(--border-default);color:var(--color-text-muted);padding:14px 18px;display:flex}.gsearch-input-row input{font-size:var(--text-md);color:var(--color-text);background:0 0;border:none;outline:none;flex:1}.gsearch-close{cursor:pointer;color:var(--color-text-faint);padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none}.gsearch-close:hover,.gsearch-close:focus-visible{background:var(--bg-hover);color:var(--color-text)}.gsearch-body{padding:var(--space-4) var(--space-4) var(--space-6);flex:1;overflow:auto}.gsearch-empty{align-items:center;gap:var(--space-4);color:var(--color-text-faint);text-align:center;flex-direction:column;padding:50px 20px;display:flex}.gsearch-empty p{font-size:var(--text-base);margin:0}.gsearch-hint{opacity:.8;font-size:var(--text-xs)!important}.gsearch-section{margin:4px 0}.gsearch-section-head{padding:var(--space-4) var(--space-6) var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;display:flex}.gsearch-section-head>span:first-child{align-items:center;gap:var(--space-2);display:inline-flex}.gsearch-count{color:var(--color-text-faint);font-weight:var(--weight-normal);text-transform:none}.gsearch-more{color:var(--color-accent);font-size:var(--text-xs);cursor:pointer;padding:var(--space-1) var(--space-2);background:0 0;border:none}.gsearch-more:hover{text-decoration:underline}.gsearch-section-body{flex-direction:column;display:flex}.gsearch-item{align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-6);border-radius:var(--radius-md);cursor:pointer;text-align:left;color:var(--color-text);background:0 0;border:none;display:flex}.gsearch-item:hover{background:var(--bg-hover)}.gsearch-item-main{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.gsearch-item-title{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gsearch-item-sub{font-size:var(--text-xs);color:var(--color-text-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gsearch-chip{background:var(--accent-glow-mid);color:var(--color-accent);border-radius:var(--radius-xs);font-size:var(--text-3xs);font-weight:var(--weight-medium);margin-right:var(--space-2);padding:1px 6px;display:inline-block}.gsearch-chip svg{vertical-align:-2px;margin-right:var(--space-1)}.gsearch-rcp-ip{white-space:nowrap}.gsearch-rcp-ip-tag{font-size:var(--text-3xs);font-weight:var(--weight-bold);color:var(--color-text-faint);margin-right:2px}.gsearch-rcp-ip code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:var(--weight-semibold);color:var(--color-text);letter-spacing:.01em}.gsearch-rcp-ip-empty{color:var(--color-text-faint)}.gsearch-action-icon{width:var(--space-11);height:var(--space-11);background:var(--bg-panel);color:var(--color-accent);border-radius:var(--radius-sm);margin-right:var(--space-3);vertical-align:middle;justify-content:center;align-items:center;display:inline-flex}.gsearch-enter{color:var(--border-strong);flex-shrink:0}.gsearch-item:hover .gsearch-enter{color:var(--color-accent)}.gsearch-footer{padding:var(--space-4) var(--space-7);border-top:1px solid var(--border-default);font-size:var(--text-xs);color:var(--color-text-faint);background:var(--bg-panel);justify-content:space-between;display:flex}.maint-source-tabs{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-app);display:inline-flex;overflow:hidden}.maint-source-tab{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;border:none;border-right:1px solid var(--border-default);transition:background var(--t-base), color var(--t-base);background:0 0;display:inline-flex}.maint-source-tab:last-child{border-right:none}.maint-source-tab:hover,.maint-source-tab:focus-visible{background:var(--bg-header);color:var(--color-text)}.maint-source-tab.active{background:var(--color-accent);color:var(--color-text-on-accent)}.login-card{box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.login-card:before{content:"";background:var(--accent-500);width:3px;position:absolute;top:0;bottom:0;left:0}.login-input{transition:border-color var(--t-base), box-shadow var(--t-base)}.login-input:focus{border-color:var(--accent-500);box-shadow:0 0 0 3px var(--accent-glow-soft)}.login-submit-btn{padding:var(--space-5);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-semibold);background:var(--accent-500);color:var(--color-text-on-accent);cursor:pointer;box-shadow:0 1px 2px var(--accent-glow-mid);transition:background var(--t-base), box-shadow var(--t-base), transform var(--t-base);border:none}.login-submit-btn:hover{background:var(--accent-600);box-shadow:0 4px 12px var(--accent-glow-strong);transform:translateY(var(--lift-y))}.login-submit-btn:active{box-shadow:0 1px 2px var(--accent-glow-mid);transform:translateY(0)}.login-shortcut{align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-7);border-radius:var(--radius-lg);background:var(--bg-app);border:1px solid var(--border-default);transition:border-color var(--t-base), background var(--t-base), transform var(--t-base);cursor:pointer;text-decoration:none;display:flex}.login-shortcut:hover{border-color:var(--color-accent);transform:translateY(var(--lift-y));background:#f8fbff}.login-shortcut-icon{border-radius:var(--radius-md);background:var(--bg-hover);width:34px;height:34px;color:var(--color-accent);transition:background var(--t-base);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.login-shortcut:hover .login-shortcut-icon{background:#dbeafe}.login-shortcut-text{line-height:var(--leading-snug);flex-direction:column;flex:1;min-width:0;display:flex}.login-shortcut-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text)}.login-shortcut-sub{font-size:var(--text-xs);color:var(--color-text-faint);margin-top:var(--space-1);white-space:nowrap;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.login-shortcut-arrow{color:#cbd5e1;transition:transform var(--t-base), color var(--t-base);flex-shrink:0}.login-shortcut:hover .login-shortcut-arrow{color:var(--color-accent);transform:translate(3px)}.dr-card-check-group{gap:var(--space-3);flex-shrink:0;align-items:center;display:flex}.dr-card-item-actions{align-items:center;gap:var(--space-2);display:inline-flex}.dr-card-copy{width:var(--space-14);height:var(--space-14);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:background var(--t-base), color var(--t-base), border-color var(--t-base);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.dr-card-star{width:var(--space-14);height:var(--space-14);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:background var(--t-base), color var(--t-base), border-color var(--t-base);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.dr-card-star:hover,.dr-card-star:focus-visible{background:color-mix(in srgb, var(--amber-500) 8%, transparent);color:var(--amber-700)}.dr-card-star.active{color:var(--amber-500)}.dr-card-star.active:hover,.dr-card-star.active:focus-visible{background:color-mix(in srgb, var(--amber-500) 15%, transparent)}.dr-card-copy{width:var(--space-14);height:var(--space-14);margin-right:var(--space-1);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:background var(--t-base), color var(--t-base);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.dr-card-copy:hover,.dr-card-copy:focus-visible{color:#1d4ed8;background:#2563eb14}.dr-card-item.report-picked{box-shadow:inset 3px 0 0 var(--amber-500)}.dr-panel-toggle.active{background:color-mix(in srgb, var(--amber-500) 12%, transparent);border-color:var(--amber-500);color:var(--amber-700)}.dr-card-star-badge{align-items:center;gap:var(--space-1);padding:1px var(--space-3);font-size:var(--text-3xs);font-weight:var(--weight-semibold);color:var(--amber-700);background:color-mix(in srgb, var(--amber-500) 15%, transparent);border-radius:var(--radius-lg);display:inline-flex}.dr-card-comment-badge{align-items:center;gap:var(--space-1);padding:1px var(--space-3);font-size:var(--text-3xs);font-weight:var(--weight-semibold);color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, transparent);border-radius:var(--radius-lg);display:inline-flex}.dr-important-bar{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-8);background:linear-gradient(to right, color-mix(in srgb, var(--amber-500) 12%, transparent), color-mix(in srgb, var(--amber-500) 4%, transparent));border-bottom:2px solid var(--color-important);flex-wrap:wrap;display:flex}.dr-important-bar-label{align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--amber-700);margin-right:auto;display:inline-flex}.dr-important-bar-sep{color:var(--color-text-muted);font-size:var(--text-sm)}.dr-weekly-week-select{font-size:var(--text-sm);padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-app);color:var(--color-text)}@media (width<=640px){.dr-important-bar .btn,.dr-important-bar .dr-weekly-week-select{min-height:var(--space-18)}}.dr-important-feed{height:100%;padding:var(--space-8) var(--space-10) var(--space-20);background:var(--bg-panel);overflow:auto}.dr-important-section{margin-bottom:var(--space-10);scroll-margin-top:var(--space-6)}.dr-important-section-head{align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-6);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md) 6px 0 0;border-bottom:2px solid var(--color-important);font-size:var(--text-base);color:var(--color-text);z-index:5;flex-wrap:wrap;display:flex;position:sticky;top:0}@media (width<=640px){.dr-important-section-head{gap:var(--space-3);padding:var(--space-3) var(--space-4)}.dr-important-section-head .dr-action-label{display:none}.dr-important-section-head .btn{padding:var(--space-2) var(--space-3)}}.dr-important-section-head strong{font-size:var(--text-md)}.dr-important-section-date{color:var(--color-text-muted);font-size:var(--text-sm)}.dr-important-section-count{font-size:var(--text-xs);color:var(--amber-700);background:color-mix(in srgb, var(--amber-500) 12%, transparent);padding:var(--space-1) var(--space-4);border-radius:var(--radius-xl);margin-left:auto}.dr-important-section-pdf{font-size:var(--text-xs);padding:var(--space-1) var(--space-4);align-items:center;gap:var(--space-2);display:inline-flex}.dr-important-section-body{gap:var(--space-5);padding:var(--space-6);background:var(--bg-app);border:1px solid var(--border-default);border-top:none;border-radius:0 0 6px 6px;flex-direction:column;display:flex}.dr-card-item-highlight{animation:.8s ease-out card-flash}@keyframes card-flash{0%{outline:2px solid var(--color-accent);outline-offset:2px;background:var(--accent-glow-mid)}to{outline-offset:2px;outline:2px solid #0000}}.dr-search-summary{padding:var(--space-5) var(--space-6);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);background:var(--accent-glow-mid);border-radius:var(--radius-sm);margin-bottom:var(--space-4)}.dr-result-card{padding:var(--space-5) var(--space-6);border-radius:var(--radius-md);cursor:pointer;margin-bottom:var(--space-2);transition:background var(--t-fast), border-color var(--t-fast);content-visibility:auto;contain-intrinsic-size:auto 64px;border:1px solid #0000}.dr-result-card:hover,.dr-result-card:focus-visible{background:var(--bg-hover);border-color:var(--border-default)}.dr-result-card-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.dr-result-card-title{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text)}.dr-search-hit,.note-search-mark,.search-mark{background:color-mix(in srgb, var(--color-warning) 56%, transparent);color:var(--color-text);font-weight:var(--weight-semibold);box-shadow:0 0 0 1px color-mix(in srgb, var(--color-warning) 80%, transparent);border-radius:2px;padding:0 2px}.dr-result-card-meta{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);display:flex}.dr-card-comments{margin-top:var(--space-5);border-top:1px dashed var(--border-default);padding-top:var(--space-4);font-size:var(--text-sm)}.dr-card-comments-toggle{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;min-height:var(--space-15);background:0 0;display:inline-flex}.dr-card-comments-toggle:hover,.dr-card-comments-toggle:focus-visible{background:var(--bg-header);color:var(--color-text)}.dr-card-comments-body{margin-top:var(--space-4)}.dr-card-comment-list{margin:0 0 var(--space-4) 0;gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.dr-card-comment-item{padding:var(--space-4) var(--space-5);background:var(--bg-panel);border-radius:var(--radius-md);border:1px solid var(--border-default)}.dr-card-comment-head{align-items:center;gap:var(--space-4);font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2);display:flex}.dr-card-comment-author{align-items:center;gap:var(--space-1);font-weight:var(--weight-semibold);color:var(--color-text);display:inline-flex}.dr-card-comment-date{flex:1}.dr-card-comment-del{color:var(--color-text-muted);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;min-height:24px}.dr-card-comment-del:hover,.dr-card-comment-del:focus-visible{background:var(--bg-danger);color:var(--color-danger)}.dr-card-comment-body{white-space:pre-wrap;word-break:keep-all;overflow-wrap:break-word;font-size:var(--text-base);line-height:var(--leading-normal)}.dr-card-comment-compose{gap:var(--space-3);flex-direction:column;display:flex}.dr-card-comment-compose-actions{justify-content:flex-end;align-items:center;gap:var(--space-4);display:flex}.dr-card-comment-count{font-size:var(--text-xs);color:var(--color-text-muted);margin-right:auto}.dr-card-comment-submit{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);min-height:var(--space-15);background:var(--color-accent);color:var(--color-text-on-accent);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;border:none;display:inline-flex}.dr-card-comment-submit:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.dr-card-comment-submit:hover:not(:disabled),.dr-card-comment-submit:focus-visible:not(:disabled){filter:brightness(.94)}@media (width<=640px){.dr-card-comments-toggle,.dr-card-comment-submit{min-height:var(--space-18)}.dr-card-comment-del{min-height:32px}}.dr-card-item-meta{gap:var(--space-8);font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.dr-card-item-meta strong{color:var(--color-text);font-weight:var(--weight-semibold)}.dr-card-project-link{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);border-radius:var(--radius-xl);background:var(--bg-hover);color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--weight-medium);transition:background var(--t-base), border-color var(--t-base);border:1px solid #dbeafe;text-decoration:none;display:inline-flex}.dr-card-project-link:hover,.dr-card-project-link:focus-visible{border-color:var(--color-accent);background:#dbeafe;text-decoration:none}.dr-card-progress{align-items:center;gap:var(--space-4);display:inline-flex}.dr-card-progress-bar{width:80px;height:var(--space-3);background:var(--bg-panel);border-radius:var(--radius-xs);display:inline-block;overflow:hidden}.dr-card-progress-bar>span{background:var(--color-accent);height:100%;transition:width var(--t-slower);display:block}.dr-card-details{margin:var(--space-3) 0 0;font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-relaxed);padding:0;list-style:none}.dr-card-details li{white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;padding:1px 0}@media (width<=640px){.dr-card-item{padding:var(--space-6) var(--space-6)}.dr-card-item-head{gap:var(--space-4);margin-bottom:var(--space-3)}.dr-card-item-title{font-size:var(--text-base);word-break:keep-all;overflow-wrap:anywhere}.dr-card-item-meta{gap:var(--space-5);font-size:var(--text-xs)}.dr-card-progress-bar{width:60px}.dr-card-details{font-size:var(--text-sm)}.dr-card-details li{padding-inline-start:0;margin-left:0!important}}.dr-detail-subhead{font-weight:var(--weight-semibold);color:var(--color-text);display:inline}.dr-detail-num{min-width:var(--space-11);padding:0 var(--space-2);margin-right:var(--space-2);background:var(--accent-glow-mid);color:var(--color-accent);border-radius:var(--radius-xs);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-align:center;display:inline-block}.dr-detail-circle{margin-right:var(--space-2);color:var(--color-accent);font-weight:var(--weight-semibold);display:inline-block}.dr-detail-arrow{margin-right:var(--space-2);color:var(--color-text-muted);font-size:var(--text-3xs);vertical-align:1px;display:inline-block}.dr-detail-bullet{width:var(--space-5);margin-right:var(--space-2);color:var(--color-text-muted);text-align:center;display:inline-block}.maint-report-section{border:2px solid var(--color-accent);background:linear-gradient(to bottom, var(--accent-glow-mid), transparent 60%)}.maint-report-grid{gap:var(--space-7);margin-top:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));display:grid}@media (width<=640px){.maint-report-grid{gap:var(--space-5);grid-template-columns:1fr}.maint-pivot-table th,.maint-pivot-table td{padding:var(--space-2) var(--space-3)}}.maint-report-card{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-6) var(--space-7)}.maint-report-title{justify-content:space-between;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-default);display:flex}.maint-report-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.maint-report-total{font-size:var(--text-xl);font-weight:var(--weight-bold)}.maint-pivot-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.maint-pivot-table th{text-align:center;padding:var(--space-3) var(--space-4);background:var(--bg-panel);border:1px solid var(--border-default);font-weight:var(--weight-semibold);color:var(--color-text-muted);font-size:var(--text-xs)}.maint-pivot-table td{text-align:center;padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);color:var(--color-text)}.maint-pivot-table tbody tr:first-child td:first-child,.maint-pivot-table tbody tr td:first-child{text-align:left;font-weight:var(--weight-medium)}.maint-pivot-total td{background:var(--bg-panel);font-weight:var(--weight-semibold)}.maint-report-empty{padding:var(--space-10) 0;text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.maint-report-hint{margin-top:var(--space-5);font-size:var(--text-xs);color:var(--color-text-muted);text-align:right}.bk-print-area{display:none}@media print{@page bk-receipt{size:A4;margin:17mm 10.3mm 16mm 11mm}html.bk-printing{page:bk-receipt}html,body,body.bk-printing{background:#fff!important;width:auto!important;min-width:0!important;max-width:none!important;margin:0!important;padding:0!important;overflow:visible!important}body.bk-printing #root{display:none!important}body.bk-printing .bk-print-area{display:block!important}body.bk-printing .bk-print-sheet{box-sizing:border-box;page-break-after:avoid;break-inside:avoid;page-break-inside:avoid;color:#000;flex-direction:column;height:264mm;font-family:Malgun Gothic,맑은 고딕,sans-serif;display:flex}body.bk-printing .bk-print-title{text-align:center;letter-spacing:-.2pt;flex:none;margin:0 0 2mm;font-size:14pt;font-weight:700;line-height:1.35}body.bk-printing .bk-print-coffee{color:#d00;margin:0;font-size:11pt;font-weight:700}body.bk-printing .bk-print-box{box-sizing:border-box;border:1pt solid #000;flex:auto;min-height:0;padding:1.5mm 2mm}}.wm-header{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);padding-top:max(var(--space-3), env(safe-area-inset-top,0px));background:var(--accent-700);color:var(--color-text-on-accent);border-bottom:1px solid #00000026;flex:none;display:flex}.wm-header-left{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.wm-header-brand{align-items:center;gap:var(--space-2);font-weight:var(--weight-bold);display:inline-flex}.wm-header-title{font-size:var(--text-sm);letter-spacing:.02em}.wm-back-btn{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-2);border-radius:var(--radius-pill);color:var(--color-text-on-accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;background:#ffffff1f;border:1px solid #fff6;display:inline-flex}.wm-back-btn:active{transform:scale(.97)}.wm-header-page{font-size:var(--text-base);font-weight:var(--weight-semibold);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.wm-header-right{align-items:center;gap:var(--space-3);flex:none;display:inline-flex}.wm-home-status{align-items:center;gap:var(--space-3);margin:var(--space-5) var(--space-5) 0;flex-wrap:wrap;display:flex}.wm-home-duty{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-semibold);background:var(--bg-panel);color:var(--color-text-muted);border:1px solid var(--border-default);display:inline-flex}.wm-home-duty.is-on{background:var(--bg-success);color:var(--green-700);border-color:var(--green-500)}.wm-home-duty-dot{background:var(--color-text-faint);border-radius:50%;width:8px;height:8px}.wm-home-duty.is-on .wm-home-duty-dot{background:var(--green-500)}.wm-home-duty-count{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--weight-medium)}.wm-home-missed{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:var(--bg-danger);color:var(--color-danger);border:1px solid var(--color-danger);display:inline-flex}.wm-home-missed:hover{filter:brightness(1.03)}.wm-exit-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);color:var(--color-text-on-accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ffffff80;display:inline-flex}.wm-exit-btn:hover{background:#ffffff26}.user-menu-item.user-menu-item-on{color:var(--accent-700);font-weight:var(--weight-semibold)}.home-card-calendar{padding:0;overflow:hidden}.cal-wrapper{height:100%;min-height:0;transition:grid-template-columns var(--t-slow);grid-template-columns:200px 1fr;gap:0;display:grid;overflow:hidden}.cal-wrapper.cal-sidebar-collapsed{grid-template-columns:var(--space-18) 1fr}.cal-sidebar{border-right:1px solid var(--border-default);padding:var(--space-8) var(--space-7);background:var(--bg-row-alt);gap:var(--space-7);flex-direction:column;min-height:0;display:flex;position:relative;overflow-y:auto}.cal-sidebar.is-collapsed{padding:var(--space-6) 0;gap:var(--space-3);align-items:center;overflow:hidden}.cal-sidebar.is-collapsed .cal-sidebar-toggle{width:var(--space-14);height:var(--space-14)}.cal-sidebar-toggle{width:var(--space-12);height:var(--space-12);background:var(--bg-app);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;box-shadow:var(--shadow-xs);transition:background var(--t-base), border-color var(--t-base), color var(--t-base), box-shadow var(--t-base), transform var(--t-base);flex:none;justify-content:center;align-items:center;display:inline-flex}.cal-sidebar-toggle:hover,.cal-sidebar-toggle:focus-visible{background:var(--accent-50);border-color:var(--color-accent);color:var(--color-accent);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.cal-sidebar-header{padding-bottom:var(--space-3);border-bottom:1px solid var(--border-default);margin-bottom:var(--space-2);justify-content:flex-end;align-items:center;display:flex}.cal-sidebar.is-collapsed .cal-sidebar-header{padding-bottom:var(--space-3);justify-content:center}.cal-sidebar-collapsed-new{width:var(--space-14);height:var(--space-14);background:var(--color-accent-fill);color:var(--color-text-on-accent);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-xs);transition:box-shadow var(--t-base), transform var(--t-base), filter var(--t-base);border:none;justify-content:center;align-items:center;display:inline-flex}.cal-sidebar-collapsed-new:hover,.cal-sidebar-collapsed-new:focus-visible{filter:brightness(1.08);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.cal-section-title{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:var(--space-2)}.cal-list,.cal-list-section{gap:var(--space-2);flex-direction:column;display:flex}.cal-list-section+.cal-list-section{margin-top:var(--space-3)}.cal-section-toggle{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:calc(100% + 12px);transition:background var(--t-base);background:0 0;border:none;margin:0 -6px;font-family:inherit;display:inline-flex!important}.cal-section-toggle:hover,.cal-section-toggle:focus-visible{background:#2e7df60d}.cal-section-chevron{font-size:var(--text-3xs);color:var(--color-text-muted);transition:transform var(--t-base);width:var(--space-5);flex-shrink:0;display:inline-block}.cal-section-toggle.collapsed .cal-section-chevron{transform:rotate(-90deg)}.cal-section-count{font-size:var(--text-3xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);letter-spacing:0;text-transform:none;margin-left:auto}.cal-dot-btn{cursor:pointer;transition:transform var(--t-fast), box-shadow var(--t-base);border:1px solid #0000001a;padding:0}.cal-dot-btn:hover,.cal-dot-btn:focus-visible{transform:scale(1.15);box-shadow:0 0 0 2px #2e7df640}.cal-dot-btn:active{transform:scale(1.05)}.cal-color-picker{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:450;padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex;position:fixed}.cal-color-picker-head{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.cal-color-picker-head-row{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.cal-color-palette{gap:var(--space-3);grid-template-columns:repeat(5,1fr);display:grid}.cal-color-swatch{width:var(--space-11);height:var(--space-11);border-radius:var(--radius-full);cursor:pointer;transition:transform var(--t-fast), box-shadow var(--t-base);border:1px solid #0000001a;padding:0}.cal-absence-color-list{gap:var(--space-1);flex-direction:column;display:flex}.cal-absence-color-row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);cursor:pointer;text-align:left;font-size:var(--text-sm);color:var(--color-text);transition:background var(--t-base);background:0 0;border:none;display:flex}.cal-absence-color-row:hover,.cal-absence-color-row:focus-visible{background:#2e7df614}.cal-absence-color-label{flex:1}.cal-color-swatch:hover,.cal-color-swatch:focus-visible{transform:scale(1.15)}.cal-color-swatch.active{box-shadow:0 0 0 2px var(--color-text), 0 0 0 4px var(--bg-app)}.cal-absence-bulk-modal{width:820px;max-width:95vw;max-height:var(--modal-max-h)}.cal-absence-table .cal-duty-bulk-select{min-width:84px;font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.cal-absence-table .cal-duty-bulk-select[data-status=leave]{background:var(--amber-100)}.cal-absence-table .cal-duty-bulk-select[data-status=half-am],.cal-absence-table .cal-duty-bulk-select[data-status=half-pm]{background:#ffedd5}.cal-absence-table .cal-duty-bulk-select[data-status=training]{background:#ecfccb}.cal-absence-table .cal-duty-bulk-select[data-status=trip]{background:#cffafe}.cal-absence-table .cal-duty-bulk-select[data-status=duty-g]{font-weight:var(--weight-semibold);background:#fecaca}.cal-absence-table .cal-duty-bulk-select[data-status=duty-s]{font-weight:var(--weight-semibold);background:#e9d5ff}.cal-member-groups{gap:var(--space-4);padding:var(--space-5) var(--space-6);background:var(--bg-row-alt);border:1px solid var(--border-default);border-radius:var(--radius-md);flex-direction:column;display:flex}.cal-member-group{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.cal-member-group-head{align-items:center;gap:var(--space-3);flex-shrink:0;min-width:70px;display:inline-flex}.cal-member-group-label{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text)}.cal-member-group-count{font-size:var(--text-xs);color:var(--color-text-muted)}.cal-member-chips{gap:var(--space-2);flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex}.cal-member-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-4);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-2xl);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);display:inline-flex}.cal-member-chip-x{width:var(--space-8);height:var(--space-8);border-radius:var(--radius-full);color:var(--color-text-muted);cursor:pointer;transition:all var(--t-base);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.cal-member-chip-x:hover,.cal-member-chip-x:focus-visible{color:var(--color-danger);background:#ef44441f}.cal-member-add{align-items:center;gap:0;display:inline-flex}.cal-member-add input{width:90px;padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-2xl) 0 0 12px;font-size:var(--text-sm);background:var(--bg-app);color:var(--color-text)}.cal-member-add input:focus{border-color:var(--color-accent);outline:none}.cal-member-add-btn{width:var(--space-12);background:var(--color-accent);height:26px;color:var(--color-text-on-accent);border:1px solid var(--color-accent);cursor:pointer;transition:filter var(--t-base);border-left:none;border-radius:0 12px 12px 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.cal-member-add-btn:hover:not(:disabled),.cal-member-add-btn:focus-visible:not(:disabled){filter:brightness(.92)}.cal-member-add-btn:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.cal-member-readonly-hint{font-size:var(--text-xs);color:var(--color-text-muted);padding:2px 4px 0;font-style:italic}.cal-site-filter{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);flex-wrap:wrap;display:flex}.cal-site-filter-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin-right:var(--space-1)}.cal-site-filter-chip{padding:var(--space-2) var(--space-6);background:var(--bg-app);border:1px solid var(--border-default);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);cursor:pointer;transition:all var(--t-base);border-radius:14px}.cal-site-filter-chip:hover,.cal-site-filter-chip:focus-visible{border-color:var(--color-accent)}.cal-site-filter-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent)}.cal-group-header-row th{text-align:center!important}.cal-group-header{text-transform:uppercase;letter-spacing:.04em;font-size:var(--text-xs)!important;font-weight:var(--weight-semibold)!important;border-bottom:1px solid var(--border-default)!important}.cal-group-header-gwanghwamun{color:var(--color-success)!important;background:#10b98114!important}.cal-group-header-sangam{background:color-mix(in srgb, var(--amber-500) 8%, transparent)!important;color:var(--amber-700)!important}.cal-group-header-external{color:var(--color-text-muted)!important;background:#64748b14!important}.cal-schedule-conflicts{gap:var(--space-4);padding:var(--space-5) var(--space-6);border-radius:var(--radius-md);color:var(--red-600);font-size:var(--text-sm);line-height:var(--leading-normal);background:#ef444414;border:1px solid #ef44444d;display:flex}.cal-schedule-warnings{background:color-mix(in srgb, var(--amber-500) 8%, transparent);border-color:color-mix(in srgb, var(--amber-500) 35%, transparent);color:var(--amber-700)}.cal-schedule-conflicts ul{padding-left:var(--space-8);margin:4px 0 0}.cal-schedule-conflicts svg{flex-shrink:0;margin-top:1px}.cal-list-item{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:pointer;transition:background var(--t-base);font-size:var(--text-sm);color:var(--color-text);display:flex}.cal-list-item:hover,.cal-list-item:focus-visible{background:#2e7df60d}.cal-list-item.cal-list-sub{padding-left:var(--space-16);font-size:var(--text-xs);color:var(--color-text-muted)}.cal-list-chevron{font-size:var(--text-3xs);color:var(--color-text-faint);cursor:pointer;width:var(--space-7);background:0 0;border:none;flex-shrink:0;margin:0;padding:0 2px}.cal-list-chevron:hover,.cal-list-chevron:focus-visible{color:var(--color-accent)}.cal-list-chevron-spacer{width:var(--space-7);flex-shrink:0;display:inline-block}.cal-list-item input{margin:0}.cal-dot{width:var(--space-5);height:var(--space-5);border-radius:var(--radius-full);flex-shrink:0;display:inline-block}.cal-list-name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.cal-legend{gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);flex-direction:column;display:flex}.cal-legend-row{align-items:center;gap:var(--space-3);display:flex}.cal-legend-holiday{color:var(--color-danger)}.cal-legend-today{color:var(--accent-700)}.cal-shift-legend{gap:var(--space-1) var(--space-2);flex-flow:wrap}.cal-shift-legend .cal-legend-row{gap:0}.cal-legend-chip{min-width:28px;padding:0 var(--space-2);border-radius:var(--radius-sm);height:18px;font-size:var(--text-3xs);font-weight:var(--weight-semibold);color:var(--color-on-accent,#fff);white-space:nowrap;justify-content:center;align-items:center;display:inline-flex}.cal-admin-section{padding-top:var(--space-6);border-top:1px dashed var(--border-default);gap:var(--space-4);flex-direction:column;margin-top:auto;display:flex}.cal-refresh-btn{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:all var(--t-base);display:inline-flex}.cal-refresh-btn:hover:not(:disabled),.cal-refresh-btn:focus-visible:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.cal-refresh-btn:disabled{opacity:.6;cursor:wait}.cal-refresh-meta{font-size:var(--text-2xs);color:var(--color-text-muted);line-height:var(--leading-snug)}.cal-refresh-msg{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-xs);line-height:var(--leading-snug)}.cal-refresh-msg.ok{color:var(--color-success);background:#10b98114;border:1px solid #10b98140}.cal-refresh-msg.error{color:var(--red-600);background:#ef444414;border:1px solid #ef444440}.cal-spin{animation:cal-spin var(--dur-spin) linear infinite}@keyframes cal-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cal-main{flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.cal-header{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;gap:var(--space-7);flex-shrink:0;padding:14px 18px;display:flex}.cal-header-left{align-items:center;gap:var(--space-7);flex-wrap:wrap;min-width:0;display:flex}.cal-title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);margin:0}.cal-title-btn{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);cursor:pointer;transition:all var(--t-base);background:0 0;border:1px solid #0000}.cal-title-btn:hover,.cal-title-btn:focus-visible{border-color:var(--border-default);background:#2e7df60f}.cal-jump-popover{z-index:350;background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6);gap:var(--space-5);flex-direction:column;width:240px;display:flex;position:absolute;top:56px;left:18px}.cal-jump-year-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.cal-jump-year{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text)}.cal-jump-months{gap:var(--space-2);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=640px){.cal-jump-months{grid-template-columns:repeat(3,1fr)}}.cal-jump-month{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);color:var(--color-text);transition:all var(--t-base);padding:8px 0}.cal-jump-month:hover,.cal-jump-month:focus-visible{border-color:var(--color-accent);color:var(--color-accent)}.cal-jump-month.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent);font-weight:var(--weight-semibold)}.cal-jump-month.today{font-weight:var(--weight-bold)}.cal-today-duty{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6) var(--space-3) var(--space-7);border-left:3px solid var(--color-accent);background:#2e7df60d;border-radius:0 6px 6px 0;display:inline-flex}.cal-today-duty-label{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-accent);letter-spacing:.04em;text-transform:uppercase}.cal-today-duty-chip{--ev-color:#888;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5) var(--space-2) var(--space-3);background:color-mix(in srgb, var(--ev-color) 16%, transparent);border:1px solid color-mix(in srgb, var(--ev-color) 45%, transparent);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text);white-space:nowrap;cursor:pointer;transition:background var(--t-base), transform var(--t-fast);border-radius:14px;display:inline-flex}.cal-today-duty-chip:hover,.cal-today-duty-chip:focus-visible{background:color-mix(in srgb, var(--ev-color) 26%, transparent)}.cal-today-duty-chip:active{transform:translateY(var(--press-y))}.cal-today-duty-tag{min-width:var(--space-9);height:var(--space-9);background:var(--ev-color);color:var(--color-text-on-accent);font-size:var(--text-3xs);font-weight:var(--weight-bold);border-radius:var(--radius-lg);justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.cal-duty-bulk-btn{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:all var(--t-base);display:inline-flex}.cal-duty-bulk-btn:hover,.cal-duty-bulk-btn:focus-visible{border-color:var(--color-danger);color:var(--color-danger)}.cal-duty-bulk-modal{width:560px;max-width:95vw;max-height:var(--modal-max-h)}.cal-duty-bulk-body{gap:var(--space-5);padding:var(--space-7) var(--space-10) var(--space-6);flex-direction:column;display:flex}.cal-duty-bulk-toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.cal-duty-bulk-month{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text)}.cal-duty-bulk-hint{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);line-height:var(--leading-snug);background:#2e7df60d}.cal-duty-bulk-table-wrap{border:1px solid var(--border-default);border-radius:var(--radius-md);flex:1;max-height:56vh;overflow-y:auto}.cal-duty-bulk-table{border-collapse:collapse;width:100%;font-size:var(--text-base)}.cal-duty-bulk-table thead{background:var(--bg-panel);z-index:1;position:sticky;top:0}.cal-duty-bulk-table th{padding:var(--space-4) var(--space-5);text-align:left;font-weight:var(--weight-semibold);color:var(--color-text-muted);font-size:var(--text-sm);border-bottom:1px solid var(--border-default)}.cal-duty-bulk-table td{padding:var(--space-2) var(--space-4);border-bottom:1px solid #f1f5f9}.cal-duty-bulk-table tr.sun .cal-duty-bulk-date{color:var(--color-danger)}.cal-duty-bulk-table tr.sat .cal-duty-bulk-date{color:var(--color-info)}.cal-duty-bulk-table tr.sun,.cal-duty-bulk-table tr.sat{background:var(--bg-row-alt)}.cal-duty-bulk-date{font-weight:var(--weight-medium);white-space:nowrap}.cal-duty-bulk-select{width:100%;padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-sm);background:var(--bg-app);color:var(--color-text);cursor:pointer}.cal-duty-bulk-select:focus{border-color:var(--color-accent);outline:none}.cal-header-right{align-items:center;gap:var(--space-2);display:flex}.cal-weekdays{border-bottom:1px solid var(--border-default);background:var(--bg-app);flex-shrink:0;grid-template-columns:repeat(7,1fr);display:grid}.cal-weekday{padding:var(--space-5) var(--space-5) var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;color:var(--color-text-faint);text-align:center;text-transform:uppercase}.cal-weekday.sun{color:var(--color-danger)}.cal-weekday.sat{color:var(--color-info)}.cal-weekday.sun:after{content:"●";margin-left:var(--space-1);vertical-align:2px;opacity:.7;font-size:.55em}.cal-weekday.sat:after{content:"◇";margin-left:var(--space-1);vertical-align:1px;opacity:.8;font-size:.7em}.cal-grid{background:linear-gradient(#fff 0% calc(100% - 36px),#f1f5f9 calc(100% - 36px) 100%);flex-direction:column;flex:1;min-height:0;padding-bottom:36px;display:flex;overflow-y:auto}.cal-week{border-bottom:1px solid var(--border-default);flex:1 0 auto;grid-template-columns:repeat(7,1fr);display:grid;position:relative}.cal-week-events{gap:var(--space-1);pointer-events:none;z-index:2;grid-template-columns:repeat(7,1fr);grid-auto-rows:18px;padding:0 3px;display:grid;position:absolute;top:28px;left:0;right:0}.cal-week:has(.cal-cell-holiday) .cal-week-events{top:46px}.cal-event-span,.cal-event-more-span,.cal-duty-bar{pointer-events:auto;min-width:0;margin:0 1px}.cal-duty-bar{--ev-color:#f87171;border-left:3px solid var(--ev-color);background:color-mix(in srgb, var(--ev-color) 11%, transparent);color:color-mix(in srgb, var(--ev-color) 65%, #111827);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:background var(--t-base), box-shadow var(--t-base);text-align:left;border-top:none;border-bottom:none;border-right:none;align-items:center;display:inline-flex;overflow:hidden}.cal-duty-bar:hover,.cal-duty-bar:focus-visible{background:color-mix(in srgb, var(--ev-color) 18%, transparent);box-shadow:var(--shadow-xs)}.cal-duty-person{text-overflow:ellipsis;white-space:nowrap;align-items:center;min-width:0;display:inline-flex;overflow:hidden}.cal-duty-sep{opacity:.55;flex-shrink:0;margin:0 2px}.cal-duty-time{font-size:var(--text-3xs);font-weight:var(--weight-semibold);opacity:.7;font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:4px}.cal-flex-time-hint{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-surface-sunken,var(--slate-50));border-radius:var(--radius-sm);padding:6px 10px}.cal-flex-time-hint strong{color:var(--color-text);font-variant-numeric:tabular-nums}.cal-flex-time-hint-note{opacity:.75}.cal-duty-bar .cal-event-code{flex-shrink:0}.cal-event-more-span{align-self:start}.cal-cell{border-right:1px solid var(--border-default);padding:var(--space-4) var(--space-4) var(--space-3);cursor:pointer;transition:background var(--t-base);gap:var(--space-2);flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.cal-cell:hover,.cal-cell:focus-visible{background:#2e7df60d}.cal-cell:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset-inset);background:var(--accent-glow-soft)}@media (hover:hover) and (width>=641px){.cal-cell:after{content:"+";text-align:center;border-radius:var(--radius-sm);width:16px;height:16px;color:var(--color-text-muted);line-height:14px;font-size:var(--text-sm);font-weight:var(--weight-semibold);opacity:0;pointer-events:none;transition:opacity var(--t-base);position:absolute;bottom:4px;right:6px}.cal-cell:hover:after{opacity:.55}.cal-cell.other:after{display:none}}.cal-cell:nth-child(7n){border-right:none}.cal-cell.other{background:var(--bg-row-alt)}.cal-cell.other .cal-date{opacity:.38}.cal-cell.today{background:var(--cal-cell-today-bg);box-shadow:inset 0 2px 0 0 var(--color-accent);z-index:1;position:relative}.cal-cell-sun:not(.today):not(.other),.cal-cell-sat:not(.today):not(.other){background:var(--cal-cell-weekend-bg)}.cal-cell-head{align-items:flex-start;gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.cal-date{font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:-.01em;color:var(--color-text);font-variant-numeric:tabular-nums;flex-shrink:0}.cal-date.sun{color:var(--color-sun-emphasis);font-weight:var(--weight-bold)}.cal-date.sat{color:var(--color-info);font-weight:var(--weight-bold)}.cal-cell.today .cal-date,.cal-cell.today .cal-date.sun,.cal-cell.today .cal-date.sat{background:var(--accent-600);color:var(--color-text-on-accent);width:var(--space-12);height:var(--space-12);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--weight-bold);justify-content:center;align-items:center;display:inline-flex;box-shadow:0 1px 2px #2e7df659}.cal-holiday-name{font-size:var(--text-2xs);color:var(--color-danger);white-space:nowrap;text-overflow:ellipsis;min-width:0;max-width:100%;line-height:var(--leading-tight);overflow:hidden}.cal-events{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.cal-event{--ev-color:#888;border:none;border-left:3px solid var(--ev-color);border-radius:var(--radius-sm);width:100%;padding:var(--space-1) var(--space-3) var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);background:color-mix(in srgb, var(--ev-color) 13%, transparent);color:color-mix(in srgb, var(--ev-color) 70%, #111827);text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:background var(--t-base), transform var(--t-fast), box-shadow var(--t-base);display:block;overflow:hidden}.cal-event:hover,.cal-event:focus-visible{background:color-mix(in srgb, var(--ev-color) 22%, transparent);box-shadow:var(--shadow-xs)}.cal-event:active{transform:scale(.98)}.cal-event-more{font-size:var(--text-2xs);color:var(--color-text-muted);text-align:left;cursor:pointer;border-radius:var(--radius-xs);transition:background var(--t-base), color var(--t-base);background:0 0;border:none;padding:1px 5px}.cal-event-more:hover,.cal-event-more:focus-visible{color:var(--color-accent);background:#2e7df614}.cal-day-popover{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:400;padding:var(--space-4);gap:var(--space-3);flex-direction:column;max-height:60vh;display:flex;position:fixed;overflow-y:auto}.cal-day-popover-head{justify-content:space-between;align-items:center;gap:var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);padding:var(--space-2) var(--space-3) var(--space-3);border-bottom:1px solid var(--border-default);display:flex}.cal-day-popover-head-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.cal-day-popover-add{padding:var(--space-1) var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--t-base), color var(--t-base);background:0 0;flex-shrink:0}.cal-day-popover-add:hover,.cal-day-popover-add:focus-visible{background:var(--color-accent);color:var(--color-text-on-accent)}.cal-day-popover-empty{padding:var(--space-6) var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--color-text-faint)}.cal-day-popover-list{gap:var(--space-1);flex-direction:column;display:flex}.cal-day-popover-item{font-size:var(--text-sm);padding:var(--space-2) var(--space-4)}.cal-day-sheet-backdrop{z-index:399;animation:cal-sheet-fade var(--dur-base) ease-out;background:#0f172a6b;position:fixed;inset:0}.cal-day-popover.cal-day-sheet{max-height:75vh;padding:6px 14px max(18px, env(safe-area-inset-bottom));box-shadow:var(--shadow-lg);animation:cal-sheet-up var(--dur-base) cubic-bezier(.2, .8, .2, 1);border-radius:16px 16px 0 0;width:100%!important;max-width:100%!important;position:fixed!important;inset:auto 0 0!important}.cal-day-sheet-handle{width:var(--space-20);height:var(--space-2);background:#cbd5e1;border-radius:2px;flex-shrink:0;margin:6px auto 8px}.cal-day-sheet .cal-day-popover-head{font-size:var(--text-base);padding:var(--space-2) var(--space-2) var(--space-4)}.cal-day-sheet .cal-day-popover-add{padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.cal-day-sheet .cal-day-popover-list{gap:var(--space-2)}.cal-day-sheet .cal-day-popover-item{font-size:var(--text-base);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md)}.cal-day-sheet .cal-day-popover-empty{font-size:var(--text-base);padding:22px 8px}@keyframes cal-sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes cal-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.cal-modal{width:560px;max-width:95vw}.cal-field{gap:var(--space-2);margin-bottom:var(--space-6);flex-direction:column;display:flex}.cal-field label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.cal-field-row{gap:var(--space-5);grid-template-columns:1fr 1fr;display:grid}.cal-cal-picker{gap:var(--space-3);flex-wrap:wrap;display:flex}.cal-cal-chip{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--t-base);display:inline-flex}.cal-cal-chip:hover,.cal-cal-chip:focus-visible{border-color:var(--color-text-muted)}.cal-cal-chip.active{font-weight:var(--weight-semibold);background:#2e7df60a}.cal-modal-error{margin-top:var(--space-2);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--text-sm);background:#ef444414;border:1px solid #ef44444d}.cal-modal-footer{justify-content:space-between!important}.cal-modal-footer-left{gap:var(--space-4);display:flex}.cal-modal-footer-right{gap:var(--space-4);margin-left:auto;display:flex}.cal-copy-btn{color:var(--color-text-muted)!important}.cal-copy-btn:hover:not(:disabled),.cal-copy-btn:focus-visible:not(:disabled){color:var(--color-accent)!important;border-color:var(--color-accent)!important}.cal-inline-check{align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);cursor:pointer;text-transform:none!important;letter-spacing:0!important;display:inline-flex!important}.cal-inline-check input{cursor:pointer;margin:0}.cal-datetime-row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.cal-datetime-row input[type=date]{flex:130px;min-width:0}.cal-datetime-row input[type=time]{flex:none;min-width:130px}.cal-share-modes{gap:var(--space-3);flex-direction:column;display:flex}.cal-share-mode-opt{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);color:var(--color-text);font-weight:var(--weight-medium);transition:all var(--t-base);display:flex;text-transform:none!important;letter-spacing:0!important}.cal-share-mode-opt:hover,.cal-share-mode-opt:focus-visible{border-color:var(--color-accent)}.cal-share-mode-opt input{cursor:pointer;margin:0}.cal-share-mode-opt:has(input:checked){border-color:var(--color-accent);background:#2e7df60f}.cal-share-hint{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-normal);margin-left:auto}.cal-share-members{gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-5);border-radius:var(--radius-md);background:#2e7df60a;flex-wrap:wrap;display:flex}.cal-share-guest-toggle{align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;display:inline-flex}.cal-share-guest-toggle:hover{color:var(--color-text);background:var(--bg-hover)}.cal-share-member-opt{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--bg-app);border:1px solid var(--border-default);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;font-weight:var(--weight-medium);transition:all var(--t-base);border-radius:14px;text-transform:none!important;letter-spacing:0!important;display:inline-flex!important}.cal-share-member-opt:has(input:checked){border-color:var(--color-accent);color:var(--color-accent);background:#2e7df61f}.cal-share-member-opt input{cursor:pointer;margin:0}.cal-link-chips{gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.cal-link-chip{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-2xl);font-size:var(--text-xs);color:var(--color-accent);font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap;max-width:220px;transition:all var(--t-base);background:#2e7df614;border:1px solid #2e7df640;text-decoration:none;display:inline-flex;overflow:hidden}.cal-link-chip:hover,.cal-link-chip:focus-visible{border-color:var(--color-accent);background:#2e7df629}.cal-event-code{min-width:16px;margin-right:var(--space-2);border-radius:var(--radius-xs);font-size:var(--text-3xs);font-weight:var(--weight-bold);letter-spacing:0;justify-content:center;align-items:center;padding:0 3px;line-height:13px;display:inline-flex}.cal-event-time{font-weight:var(--weight-semibold);font-size:var(--text-3xs);margin-right:var(--space-2);opacity:.7;font-variant-numeric:tabular-nums;display:inline-block}.cal-event-author{font-size:var(--text-3xs);font-weight:var(--weight-semibold);margin-right:var(--space-2);border-radius:var(--radius-xs);color:color-mix(in srgb, var(--ev-color) 75%, #000);background:#ffffff8c;padding:0 4px;display:inline-block}.cal-event-shared{border-left-style:dashed}.cal-event.is-mine{font-weight:var(--weight-bold);color:color-mix(in srgb, var(--ev-color) 78%, #000);background:color-mix(in srgb, var(--ev-color) 19%, transparent);border-left-width:6px}.cal-event.is-mine:before{content:"";width:5px;height:5px;margin-right:var(--space-2);background:var(--ev-color);vertical-align:middle;border-radius:50%;flex:none;display:inline-block}.cal-event.is-mine.cal-duty-bar{background:color-mix(in srgb, var(--ev-color) 17%, transparent)}.cal-event[data-cal=absence-half]{background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--ev-color) 16%, transparent) 0, color-mix(in srgb, var(--ev-color) 16%, transparent) 5px, color-mix(in srgb, var(--ev-color) 32%, transparent) 5px, color-mix(in srgb, var(--ev-color) 32%, transparent) 10px)}.cal-event[data-cal=absence-half]:hover,.cal-event[data-cal=absence-half]:focus-visible{background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--ev-color) 24%, transparent) 0, color-mix(in srgb, var(--ev-color) 24%, transparent) 5px, color-mix(in srgb, var(--ev-color) 40%, transparent) 5px, color-mix(in srgb, var(--ev-color) 40%, transparent) 10px)}.cal-modal-mine-badge{margin-left:var(--space-4);padding:var(--space-1) var(--space-4);color:var(--color-accent);border-radius:var(--radius-xl);font-size:var(--text-xs);font-weight:var(--weight-semibold);vertical-align:middle;background:#2e7df61f;display:inline-block}.cal-delete-btn{color:var(--color-danger)!important;border-color:#ef44444d!important}.cal-delete-btn:hover,.cal-delete-btn:focus-visible{background:#ef444414!important}@media (width<=640px){.cal-wrapper,.cal-wrapper.cal-sidebar-collapsed{grid-template-columns:1fr}.cal-main{order:1}.cal-sidebar{border-right:none;border-top:1px solid var(--border-default);padding:var(--space-5) var(--space-7);flex-flow:wrap;order:2;align-items:center}.cal-section-title{display:none}.cal-list{flex-flow:wrap}.cal-legend{display:none}.cal-sidebar{padding:var(--space-4) var(--space-5);gap:var(--space-4)}.cal-new-btn{padding:var(--space-3) var(--space-5);font-size:var(--text-sm);align-self:flex-start}.cal-list-section{width:100%}.cal-list{gap:var(--space-2);padding-left:var(--space-3);flex-flow:column!important}.cal-list-item{width:100%}.cal-weekday{padding:var(--space-2) var(--space-1);font-size:var(--text-3xs)}.cal-weekday.sun:after,.cal-weekday.sat:after{display:none}.cal-cell{padding:var(--space-2) var(--space-1) var(--space-1);gap:var(--space-1)}.cal-cell.today .cal-date,.cal-cell.today .cal-date.sun,.cal-cell.today .cal-date.sat{width:var(--space-10);height:var(--space-10);font-size:var(--text-2xs)}.cal-holiday-name{font-size:var(--text-3xs);line-height:var(--leading-tight)}.cal-week-events{grid-auto-rows:14px;gap:1px;padding:0 2px;top:22px}.cal-week:has(.cal-cell-holiday) .cal-week-events{top:36px}.cal-duty-bar,.cal-event-span,.cal-event-more-span{font-size:var(--text-3xs);border-radius:2px;padding:1px 3px}.cal-duty-bar{border-left-width:2px}.cal-event.is-mine{border-left-width:5px}.cal-event.is-mine:before{display:none}.cal-event-code{min-width:14px;margin-right:var(--space-1);font-size:var(--text-3xs);border-radius:2px;padding:0 2px;line-height:12px}.cal-event-time,.cal-event-author{font-size:var(--text-3xs);margin-right:var(--space-1);padding:0 2px}.cal-grid{padding-bottom:var(--space-6)}.cal-weekday{font-size:var(--text-3xs);padding:3px 1px}.cal-cell{padding:2px 1px}.cal-date{font-size:var(--text-3xs)}.cal-week-events{grid-auto-rows:12px;top:20px}.cal-duty-bar,.cal-event-span,.cal-event-more-span{font-size:var(--text-3xs);padding:1px 2px}.cal-event-code{min-width:12px;font-size:var(--text-3xs);line-height:10px}.cal-field input[type=text],.cal-field input[type=date],.cal-field textarea,.cal-member-add input{font-size:16px}.cal-title-btn{min-height:var(--space-20);align-items:center;display:inline-flex}.cal-refresh-btn{min-height:var(--space-20)}.cal-sidebar-toggle{display:none}}.admin-settings-header{margin-bottom:var(--space-12);padding-bottom:var(--space-8);border-bottom:1px solid var(--border-default)}.admin-settings-title{align-items:center;gap:var(--space-5);color:var(--color-text);display:flex}.admin-settings-title h1{font-size:var(--text-2xl);font-weight:var(--weight-bold);margin:0}.admin-settings-subtitle{margin:var(--space-3) 0 0 var(--space-15);font-size:var(--text-base);color:var(--color-text-muted)}.admin-settings-section{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);margin-bottom:18px;padding:18px 20px}.admin-settings-section-head{align-items:center;gap:var(--space-4);margin-bottom:var(--space-7);color:var(--color-text);display:flex}.admin-settings-section-head h2{font-size:var(--text-md);font-weight:var(--weight-bold);margin:0}.admin-settings-section-hint{font-size:var(--text-sm);color:var(--color-text-faint);font-weight:var(--weight-normal);margin-left:auto}.runbook-keyfact{align-items:flex-start;gap:var(--space-4);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-6);background:var(--bg-info);border:1px solid var(--color-accent);border-radius:var(--radius-md);color:var(--color-text);display:flex}.runbook-keyfact svg{color:var(--color-accent);flex-shrink:0;margin-top:2px}.runbook-keyfact div{gap:var(--space-1);flex-direction:column;display:flex}.runbook-keyfact span{font-size:var(--text-sm);color:var(--color-text-muted)}.runbook-item{border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-3);background:var(--bg-panel)}.runbook-item>summary{cursor:pointer;padding:var(--space-4) var(--space-6);font-weight:var(--weight-semibold);font-size:var(--text-base);list-style-position:inside}.runbook-item>summary:hover{background:var(--bg-hover);border-radius:var(--radius-md)}.runbook-steps{padding:0 var(--space-6) var(--space-5)}.runbook-steps ol,.runbook-steps ul{padding-left:var(--space-8);gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text);flex-direction:column;margin:0;display:flex}.runbook-links{gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.runbook-go{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-size:var(--text-xs);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-app);color:var(--color-accent);cursor:pointer;display:inline-flex}.runbook-go:hover{border-color:var(--color-accent);background:var(--bg-hover)}.admin-section{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);margin-bottom:18px;padding:18px 20px}.admin-section-head,.admin-section-header{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-7);color:var(--color-text);flex-direction:column;display:flex}.admin-section-title,.admin-section-head h2,.admin-section-header h2{font-size:var(--text-md);font-weight:var(--weight-bold);align-items:center;gap:var(--space-4);margin:0;display:flex}.admin-section>.admin-section-title{margin-bottom:var(--space-7)}.admin-section-body{gap:var(--space-6);flex-direction:column;display:flex}.admin-section-desc,.admin-section-hint,.admin-section-help{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--weight-normal);margin:0}.admin-section-subtitle{margin:var(--space-6) 0 var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.admin-section-empty,.admin-section-loading{font-size:var(--text-sm);color:var(--color-text-muted);padding:var(--space-6) 0}.admin-section-actions{gap:var(--space-4);flex-wrap:wrap;display:flex}.admin-tabs{gap:var(--space-2);border-bottom:1px solid var(--border-default);margin-bottom:var(--space-6);display:flex}.admin-tab{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;display:inline-flex}.admin-tab:hover{color:var(--color-text)}.admin-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:var(--weight-semibold)}.admin-settings-member-list{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.admin-settings-member-row{align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-6);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);display:flex;position:relative}.admin-settings-color-dot{width:var(--space-16);height:var(--space-16);border-radius:var(--radius-full);box-shadow:0 0 0 1px var(--border-strong);cursor:pointer;color:var(--color-text-on-accent);font-weight:var(--weight-bold);font-size:var(--text-base);transition:transform var(--t-base), box-shadow var(--t-base);border:2px solid #fff;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.admin-settings-color-dot:hover:not(:disabled),.admin-settings-color-dot:focus-visible:not(:disabled){box-shadow:0 0 0 2px var(--color-accent);transform:scale(1.08)}.admin-settings-color-dot:disabled{cursor:wait;opacity:.6}.admin-settings-color-dot-initial{pointer-events:none}.admin-settings-member-info{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.admin-settings-member-info strong{font-size:var(--text-base);color:var(--color-text);font-weight:var(--weight-semibold)}.admin-settings-member-hex{font-size:var(--text-xs);color:var(--color-text-muted);font-family:SF Mono,Consolas,Menlo,monospace}.admin-settings-picker{z-index:var(--z-sticky);background:var(--bg-app);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-lg);min-width:200px;position:absolute;top:calc(100% + 6px);left:0}.admin-settings-picker-grid{gap:var(--space-3);grid-template-columns:repeat(5,28px);display:grid}.admin-settings-picker-swatch{width:var(--space-14);height:var(--space-14);border-radius:var(--radius-md);box-shadow:0 0 0 1px var(--border-strong);cursor:pointer;transition:transform var(--t-fast);border:2px solid #fff;padding:0}.admin-settings-picker-swatch:hover,.admin-settings-picker-swatch:focus-visible{box-shadow:0 0 0 1px var(--color-text-muted);transform:scale(1.12)}.admin-settings-picker-swatch.active{box-shadow:0 0 0 2px var(--color-text)}.admin-settings-picker-custom{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-default)}.admin-settings-picker-custom label{font-size:var(--text-sm);color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.admin-settings-picker-custom input[type=color]{width:var(--space-20);height:var(--space-14);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:0}.admin-settings-wrap{height:100%;display:flex;overflow:hidden}.admin-settings-nav{background:var(--bg-header);border-right:1px solid var(--border-default);width:200px;padding:var(--space-10) var(--space-5);flex:0 0 200px;overflow-y:auto}.admin-settings-nav-title{align-items:center;gap:var(--space-3);color:var(--color-text);font-size:var(--text-base);padding:0 10px 12px;display:flex}.admin-settings-nav ul{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.admin-settings-nav-group{margin-top:var(--space-7)}.admin-settings-nav-group:first-of-type{margin-top:var(--space-2)}.admin-settings-nav-group-label{align-items:center;gap:var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--slate-500);text-transform:uppercase;letter-spacing:.04em;padding:0 10px 4px;display:flex}.admin-settings-nav-group-count{min-width:var(--space-9);height:var(--space-8);border-radius:var(--radius-sm);background:var(--slate-200);color:var(--slate-600);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:0;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.admin-settings-nav button{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--text-base);font-weight:var(--weight-medium);text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.admin-settings-nav button:hover,.admin-settings-nav button:focus-visible{background:var(--bg-header);color:var(--color-text)}.admin-settings-nav button.active{background:var(--accent-100);color:var(--accent-800);font-weight:var(--weight-bold)}.admin-settings-link-btn{padding:var(--space-1) var(--space-2);color:var(--color-accent);font-size:var(--text-sm);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;text-decoration:underline}.admin-settings-link-btn:hover,.admin-settings-link-btn:focus-visible{color:var(--accent-700)}.admin-settings-row-muted td{opacity:.55}.admin-settings-notice-title{align-items:center;gap:var(--space-2);font-weight:var(--weight-semibold);color:var(--color-text);display:inline-flex}.admin-settings-collapsible{margin-top:var(--space-5);padding:var(--space-4) var(--space-5);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md)}.admin-settings-collapsible summary{font-size:var(--text-sm);color:var(--color-accent);cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0}.admin-settings-collapsible summary:hover,.admin-settings-collapsible summary:focus-visible{color:var(--accent-700)}.admin-settings-holiday-year{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--slate-100)}.admin-settings-holiday-year strong{font-size:var(--text-sm);color:var(--color-text)}.admin-settings-holiday-year ul{gap:var(--space-1) var(--space-6);font-size:var(--text-xs);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin:6px 0 0;padding:0;list-style:none;display:grid}.admin-settings-holiday-year li{gap:var(--space-4);color:var(--color-text-muted);display:flex}.admin-settings-holiday-date{color:var(--color-text-muted);flex:0 0 76px;font-family:SF Mono,Consolas,monospace}.admin-settings-warning{gap:var(--space-5);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-6);background:var(--amber-100);border:1px solid var(--amber-300);border-radius:var(--radius-md);color:var(--amber-900);font-size:var(--text-sm);line-height:var(--leading-normal);display:flex}.admin-settings-warning>svg{margin-top:var(--space-1);color:var(--amber-600);flex:none}.admin-settings-warning-body{gap:var(--space-2);flex-direction:column;flex:1;display:flex}.admin-settings-warning-body strong{color:var(--amber-900)}.admin-settings-warning-body u{-webkit-text-decoration-color:var(--amber-600);text-decoration-color:var(--amber-600)}.admin-settings-warning-hint{color:var(--amber-800);font-weight:var(--weight-normal);font-style:italic}.admin-settings-storage-grid{gap:var(--space-5);margin-top:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.admin-settings-storage-card{padding:var(--space-6);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);gap:var(--space-3);flex-direction:column;display:flex}.admin-settings-storage-card.missing{opacity:.55;background:var(--bg-panel)}.admin-settings-storage-card-head{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.admin-settings-storage-card-head strong{font-size:var(--text-base);color:var(--color-text)}.admin-settings-storage-size{font-size:var(--text-base);color:var(--color-accent);font-weight:var(--weight-bold)}.admin-settings-storage-bar{height:var(--space-3);background:var(--bg-header);border-radius:var(--radius-xs);overflow:hidden}.admin-settings-storage-bar-fill{background:linear-gradient(90deg, var(--accent-600), var(--accent-400));height:100%;transition:width var(--t-slower)}.admin-settings-storage-card-meta{font-size:var(--text-xs);color:var(--color-text-muted);justify-content:space-between;display:flex}.admin-settings-storage-missing{font-size:var(--text-3xs);color:var(--color-danger);text-align:right}.spin{animation:admin-spin var(--dur-spin) linear infinite}@keyframes admin-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.admin-settings-excel-preview{margin-top:var(--space-5);padding:var(--space-6);background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-md)}.admin-settings-excel-preview-head{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.admin-settings-excel-preview-stats{gap:var(--space-3);flex-wrap:wrap;display:flex}.admin-settings-excel-preview-stats .pill{padding:var(--space-1) var(--space-4);border-radius:var(--radius-xl);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.admin-settings-excel-preview-stats .pill.add{color:#166534;background:#dcfce7}.admin-settings-excel-preview-stats .pill.update{background:var(--amber-100);color:var(--amber-800)}.admin-settings-excel-preview-stats .pill.unchanged{background:var(--bg-header);color:var(--color-text-muted)}.admin-settings-excel-preview-stats .pill.skip{background:var(--bg-danger);color:var(--color-danger)}.admin-settings-excel-preview details{margin-top:var(--space-4)}.admin-settings-excel-preview summary{font-size:var(--text-sm);color:var(--color-accent);cursor:pointer;padding:4px 0}.cal-stats-view{padding:var(--space-8) var(--space-10) var(--space-16);height:100%;overflow-y:auto}.cal-stats-toolbar{align-items:center;gap:var(--space-7);margin-bottom:var(--space-6);font-size:var(--text-sm);color:var(--color-text);flex-wrap:wrap;display:flex}.cal-stats-filter-group{align-items:center;gap:var(--space-5);display:flex}.cal-stats-filter-field{align-items:center;gap:var(--space-3);display:flex}.cal-stats-filter-field+.cal-stats-filter-field:before{content:"";width:1px;height:var(--space-9);background:var(--border-default);margin-right:var(--space-1);display:inline-block}.cal-stats-filter-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.cal-stats-filter-select{padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);background:var(--bg-app);cursor:pointer;font-variant-numeric:tabular-nums}.cal-stats-filter-select:hover,.cal-stats-filter-select:focus-visible{background:var(--bg-panel);border-color:var(--border-strong)}.cal-stats-filter-select:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.cal-stats-totals{align-items:center;gap:var(--space-7);font-size:var(--text-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums;display:flex}.cal-stats-totals strong{color:var(--color-text);font-weight:var(--weight-bold)}.cal-stats-print-btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;margin-left:auto;display:inline-flex}.cal-stats-print-btn:hover,.cal-stats-print-btn:focus-visible{background:var(--bg-panel)}.cal-stats-grid{gap:var(--space-7);grid-template-columns:repeat(2,1fr);display:grid}.cal-stats-card{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-7);flex-direction:column;min-height:260px;display:flex}.cal-stats-card-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);color:var(--color-text);font-size:var(--text-base);display:flex}.cal-stats-card-sub{font-size:var(--text-xs);color:var(--color-text-faint);font-weight:var(--weight-normal);margin-left:auto}.cal-stats-loading,.cal-stats-empty{text-align:center;color:var(--color-text-faint);font-size:var(--text-base);padding:30px}.cal-stats-priority{margin-bottom:var(--space-7);padding:var(--space-6) var(--space-8);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg)}.cal-stats-priority-head{align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);color:var(--color-text);display:flex}.cal-stats-priority-head strong{font-size:var(--text-base);color:var(--color-text)}.cal-stats-priority-sub{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-medium)}.cal-stats-priority-tie{padding:var(--space-2) var(--space-4);background:var(--bg-success);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-success);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;border:1px solid #10b98140;margin:4px 0 6px;display:inline-block}.cal-stats-priority-list{gap:var(--space-2);flex-direction:column;display:flex}.cal-stats-priority-row{align-items:center;gap:var(--space-5);padding:var(--space-2) var(--space-1);font-size:var(--text-sm);grid-template-columns:72px 1fr 68px 58px;display:grid}.cal-stats-priority-name{font-weight:var(--weight-semibold);color:var(--color-text);border-left:3px solid var(--member-color,#94a3b8);padding-left:var(--space-4)}.cal-stats-priority-bar-wrap{height:var(--space-4);background:var(--bg-header);border-radius:var(--radius-sm);position:relative;overflow:hidden}.cal-stats-priority-bar{border-radius:var(--radius-sm);height:100%;transition:width var(--t-slow);background:#f87171;display:block}.cal-stats-priority-val{text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text)}.cal-stats-priority-val strong{color:var(--color-text);font-weight:var(--weight-bold);margin:0 2px}.cal-stats-priority-val2{text-align:right;font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.cal-stats-fairness{align-items:center;gap:var(--space-4) var(--space-7);padding:var(--space-5) var(--space-7);margin-bottom:var(--space-7);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.cal-stats-fairness-title{color:var(--color-text);margin-right:var(--space-2)}.cal-stats-fairness-item{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-5);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-2xl);display:inline-flex}.cal-stats-fairness-kind{font-weight:var(--weight-bold);color:var(--color-text)}.cal-stats-fairness-range[data-balance=good]{color:var(--color-success)}.cal-stats-fairness-range[data-balance=ok]{color:var(--color-text-muted)}.cal-stats-fairness-range[data-balance=warn]{color:var(--color-warning);font-weight:var(--weight-bold)}.cal-stats-fairness-hint{color:var(--color-text-faint);font-size:var(--text-xs)}.cal-stats-card-toggle{gap:var(--space-1);padding:var(--space-1);background:var(--bg-header);border-radius:var(--radius-md);margin-left:auto;display:inline-flex}.cal-stats-card-toggle button{padding:var(--space-1) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none}.cal-stats-card-toggle button.active{background:var(--bg-app);color:#075985;box-shadow:var(--shadow-xs)}.cal-stats-card-toggle button:hover:not(.active),.cal-stats-card-toggle button:focus-visible:not(.active){color:var(--color-text)}.cal-stats-summary-scroll{margin:0 -6px;padding:0 6px;overflow-x:auto}.cal-stats-summary-table-wide{min-width:760px}.cal-stats-summary-table-wide .cal-stats-th-group{text-align:center;background:var(--bg-hover);color:#1e3a8a;font-weight:var(--weight-bold);border-bottom:1px solid #bfdbfe}.cal-stats-summary-table-wide .cal-stats-th-group.duty{background:var(--bg-danger);color:var(--color-danger);border-bottom-color:#fca5a5}.cal-stats-summary-table-wide .cal-stats-th-group.absence{background:var(--amber-100);color:var(--amber-800);border-bottom-color:var(--amber-300)}.cal-stats-summary-table-wide .cal-stats-th-group.visit{color:#1e3a8a;background:#dbeafe;border-bottom-color:#93c5fd}.cal-stats-summary-table .cal-stats-sep{color:#cbd5e1;font-weight:var(--weight-normal);margin:0 3px}.cal-stats-summary-table .cal-stats-hol{color:var(--red-600);font-weight:var(--weight-bold)}.cal-stats-summary-table .cal-stats-hol-total{color:var(--red-600)}.cal-stats-summary-sub{font-size:var(--text-2xs);color:var(--color-text-faint);font-weight:var(--weight-normal);margin-left:var(--space-2);text-transform:none;letter-spacing:normal}.cal-stats-separated{gap:var(--space-4);flex-direction:column;display:flex}.cal-stats-separated-row{align-items:center;gap:var(--space-4);display:flex}.cal-stats-separated-label{min-width:var(--space-20);font-size:var(--text-xs);font-weight:var(--weight-bold);text-align:right}.cal-stats-summary{margin-top:var(--space-8);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-7)}.cal-stats-summary-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin-bottom:var(--space-3);text-transform:uppercase;letter-spacing:.04em}.cal-stats-summary-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.cal-stats-summary-table th,.cal-stats-summary-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-default);text-align:left}.cal-stats-summary-table th{background:var(--bg-panel);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.cal-stats-summary-table th:not(:first-child),.cal-stats-summary-table td:not(:first-child){text-align:right}.cal-stats-summary-table .cal-stats-total{font-weight:var(--weight-bold)}.cal-stats-summary-table .cal-stats-total-soft{font-weight:var(--weight-semibold);color:var(--color-text-muted)}.cal-stats-member-dot{width:var(--space-4);height:var(--space-4);border-radius:var(--radius-full);margin-right:var(--space-3);vertical-align:middle;display:inline-block}.cal-stats-idle-list{margin-top:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--bg-panel);border:1px dashed var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-text-muted)}.cal-stats-v2{padding:var(--space-8) var(--space-10) var(--space-16);font-variant-numeric:tabular-nums;height:100%;overflow-y:auto}.cal-stats-ctx{margin-bottom:var(--space-8)}.cal-stats-ctx-top{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.cal-stats-ctx-period{font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--color-text)}.cal-stats-ctx-sep{color:var(--color-text-faint)}.cal-stats-ctx-grow{min-width:var(--space-5);flex:1}.cal-stats-ctx-sites{gap:var(--space-1);padding:var(--space-1);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);display:inline-flex}.cal-stats-ctx-site{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none}.cal-stats-ctx-site.active{background:var(--bg-app);color:var(--color-text);box-shadow:var(--shadow-xs)}.cal-stats-ctx-note{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all;line-height:1.7}.cal-stats-ctx-note strong,.cal-stats-ctx-criteria{color:var(--color-text);font-weight:var(--weight-semibold)}.cal-stats-ctx-by{color:var(--color-text-faint)}.cal-stats-ctx-dirty{color:var(--color-warning);font-weight:var(--weight-semibold)}.cal-stats-ctx-pickbtn{margin-left:var(--space-3);padding:1px var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-full,999px);font:inherit;font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0}.cal-stats-ctx-pickbtn:hover{border-color:var(--border-strong);color:var(--color-text)}.cal-stats-ctx-pickbtn:focus-visible{outline:var(--focus-ring);outline-offset:2px}.cal-stats-dash{gap:var(--space-6);grid-template-columns:minmax(0,1fr);grid-template-areas:"me""load""months""when";display:grid}.cal-stats-tile-me{flex-direction:column;grid-area:me;display:flex}.cal-stats-tile-rank{grid-area:rank}.cal-stats-tile-load{grid-area:load}.cal-stats-tile-months{grid-area:months}.cal-stats-tile-when{grid-area:when}.cal-stats-dash-tile{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);min-width:0;padding:var(--space-7) var(--space-8)}.cal-stats-tile-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.cal-stats-tile-title{font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--color-text);letter-spacing:-.01em;margin:0}.cal-stats-tile-sub{font-size:var(--text-xs);color:var(--color-text-faint);font-weight:var(--weight-medium)}.cal-stats-site-block{margin-bottom:var(--space-6)}.cal-stats-site-block:last-child{margin-bottom:0}.cal-stats-site-block-title{margin:0 0 var(--space-3)}.cal-stats-hero{gap:var(--space-6);flex-direction:column;height:100%;display:flex}.cal-stats-hero-main{flex-direction:column;min-width:0;display:flex}@media (width>=900px){.cal-stats-hero{align-items:stretch;gap:var(--space-9);flex-direction:row}.cal-stats-hero-main{flex:none;justify-content:center;min-width:168px}.cal-stats-hero-sparkwrap{flex:none}.cal-stats-hero-support{padding-top:0;padding-left:var(--space-8);border-top:none;border-left:1px solid var(--border-default);flex:auto;align-content:center}.cal-stats-hero-actions{flex-direction:column;flex:none;justify-content:center;align-items:flex-end}}.cal-stats-hero-label{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text-muted);letter-spacing:.02em}.cal-stats-hero-value{align-items:baseline;gap:var(--space-1);font-size:clamp(2.4rem,6vw,3.4rem);font-weight:var(--weight-extrabold);color:var(--color-text);line-height:var(--leading-none);margin-top:var(--space-1);font-variant-numeric:tabular-nums;display:flex}.cal-stats-hero-unit{font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--color-text-muted)}.cal-stats-hero-note{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-2);word-break:keep-all}.cal-stats-hero-note strong{color:var(--color-text);font-weight:var(--weight-bold)}.cal-stats-hero-period{margin-top:var(--space-2);font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-faint)}.cal-stats-hero-sparkwrap{gap:var(--space-2);flex-direction:column;display:flex}.cal-stats-hero-spark-title{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.cal-stats-hero-spark{align-items:flex-end;gap:var(--space-2);display:flex}.cal-stats-hero-spark-col{flex-direction:column;align-items:center;gap:2px;width:26px;display:flex}.cal-stats-hero-spark-num{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);font-variant-numeric:tabular-nums;min-height:.9em;line-height:1}.cal-stats-hero-spark-bar{width:100%;height:var(--space-12);background:var(--bg-panel);border-radius:2px;align-items:flex-end;display:flex;overflow:hidden}.cal-stats-hero-spark-bar>span{background:var(--sky-500);width:100%;min-height:2px;transition:height var(--t-slow);border-radius:2px;display:block}.cal-stats-hero-spark-mon{font-size:var(--text-2xs);color:var(--color-text-faint);font-variant-numeric:tabular-nums;line-height:1}.cal-stats-hero-spark-empty{padding:var(--space-3);text-align:center;background:var(--bg-panel);border-radius:var(--radius-sm);color:var(--color-text-faint);font-size:var(--text-xs);font-style:italic}.cal-stats-hero-nobreak{font-size:var(--text-xs);color:var(--color-text-faint);align-self:center;font-style:italic}.cal-stats-hero-othersite{font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all;margin:0;line-height:1.6}.cal-stats-hero-support.is-other-site{display:block}.cal-stats-hero-support{align-content:center;gap:var(--space-5) var(--space-9);padding-top:var(--space-5);border-top:1px solid var(--border-default);flex-wrap:wrap;display:flex}.cal-stats-hero-support>.cal-stats-mini{min-width:76px}.cal-stats-mini{flex-direction:column;gap:2px;min-width:0;display:flex}.cal-stats-mini-label{align-items:center;gap:var(--space-2);font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);display:flex}.cal-stats-mini-dot{border-radius:2px;flex:none;width:8px;height:8px}.cal-stats-mini-value{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-none);font-variant-numeric:tabular-nums;align-items:baseline;gap:2px;display:flex}.cal-stats-mini-unit{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted)}.cal-stats-mini-sub{font-size:var(--text-2xs);color:var(--color-text-faint)}.cal-stats-mini-bar{margin-top:var(--space-1);background:var(--bg-panel);border-radius:2px;height:4px;overflow:hidden}.cal-stats-mini-bar>span{background:var(--amber-500);height:100%;transition:width var(--t-slow);border-radius:2px;display:block}.cal-stats-hero-actions{gap:var(--space-3);padding-top:var(--space-5);flex-wrap:wrap;margin-top:auto;display:flex}.cal-stats-hero-link{padding:var(--space-2) var(--space-5);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-accent);cursor:pointer;white-space:nowrap}.cal-stats-hero-link:hover{background:var(--bg-hover)}.cal-stats-hero-link:focus-visible{outline:var(--focus-ring);outline-offset:2px}.cal-stats-hero-link.is-subtle{color:var(--color-text-muted)}.cal-stats-hero-aside{font-size:var(--text-2xs);color:var(--color-text-faint);white-space:nowrap;align-self:center}.cal-stats-fair-hint{margin-bottom:var(--space-5)}.cal-stats-v2-data-table{margin-top:var(--space-5);font-size:var(--text-xs)}.cal-stats-v2-data-table>summary{cursor:pointer;color:var(--color-text-muted);padding:var(--space-2) 0;list-style:revert}.cal-stats-v2-data-table>summary:focus-visible{outline:var(--focus-ring);outline-offset:2px}.cal-stats-v2-data-table[open]>summary{color:var(--color-text);font-weight:var(--weight-semibold)}.cal-stats-v2-data-table table{border-collapse:collapse;width:100%;margin-top:var(--space-3)}.cal-stats-v2-data-table th,.cal-stats-v2-data-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-default);text-align:left}.cal-stats-v2-data-table th{color:var(--color-text-muted);font-weight:var(--weight-medium)}.cal-stats-v2-data-table td.num{text-align:right;font-variant-numeric:tabular-nums}.cal-stats-v2-ranking{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-6) var(--space-8)}.cal-stats-v2-ranking-tie{margin-bottom:var(--space-4);padding:var(--space-2) var(--space-5);background:var(--bg-success);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-success);font-weight:var(--weight-semibold);border:1px solid #10b98140;display:inline-block}.cal-stats-v2-ranking-list{gap:var(--space-2);flex-direction:column;display:flex}.cal-stats-v2-ranking-row{align-items:center;column-gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text);grid-template-columns:28px minmax(48px,auto) 1fr auto;grid-template-areas:"rank name bar val"".detail detail detail";row-gap:2px;display:grid}.cal-stats-v2-ranking-rank{grid-area:rank}.cal-stats-v2-ranking-name{grid-area:name}.cal-stats-v2-ranking-bar-wrap{grid-area:bar}.cal-stats-v2-ranking-val{grid-area:val}.cal-stats-v2-ranking-detail{grid-area:detail}.cal-stats-v2-ranking-row.is-me{background:var(--bg-selected);outline:1px solid var(--color-accent)}.cal-stats-v2-ranking-rank{font-weight:var(--weight-bold);color:var(--color-text-muted);font-size:var(--text-xs);text-align:right}.cal-stats-v2-ranking-name{font-weight:var(--weight-semibold);border-left:3px solid var(--member-color,var(--border-default));padding-left:var(--space-4)}.cal-stats-v2-ranking-bar-wrap{height:var(--space-4);background:var(--bg-panel);border-radius:var(--radius-sm);position:relative;overflow:hidden}.cal-stats-v2-ranking-bar{border-radius:var(--radius-sm);height:100%;transition:width var(--t-slower);background:linear-gradient(90deg,#38bdf8 0%,#0ea5e9 100%);display:block}.cal-stats-v2-ranking-val{text-align:right;font-variant-numeric:tabular-nums}.cal-stats-v2-ranking-val strong{font-weight:var(--weight-bold);font-size:var(--text-base)}.cal-stats-v2-ranking-detail{font-size:var(--text-2xs);color:var(--color-text-faint);white-space:normal}.cal-stats-v2-ranking-foot{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px dashed var(--border-default);font-size:var(--text-xs);color:var(--color-text-muted);text-align:right}.cal-stats-rank-head{justify-content:space-between;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.cal-stats-rank-headmain{flex:320px;min-width:0}.cal-stats-rank-title{margin:0 0 var(--space-2);font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text)}.cal-stats-rank-desc{max-width:min(62ch,100%);font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all;margin:0;line-height:1.6}.cal-stats-rank-desc strong{color:var(--color-text);font-weight:var(--weight-semibold)}.cal-stats-rank-verdict{padding:var(--space-4) var(--space-6);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-header);white-space:nowrap;border-left-width:3px;flex-direction:column;gap:2px;display:flex}.cal-stats-rank-verdict.tone-good{border-left-color:var(--color-success)}.cal-stats-rank-verdict.tone-ok{border-left-color:var(--color-text-muted)}.cal-stats-rank-verdict.tone-warn{border-left-color:var(--color-warning)}.cal-stats-rank-verdict.tone-alert{border-left-color:var(--color-danger)}.cal-stats-rank-verdict-label{font-size:var(--text-2xs);color:var(--color-text-muted)}.cal-stats-rank-verdict-value{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text);font-variant-numeric:tabular-nums}.cal-stats-rank-verdict-tone{font-size:var(--text-2xs);color:var(--color-text-muted);font-weight:var(--weight-semibold)}.cal-stats-rank-verdict.tone-warn .cal-stats-rank-verdict-tone{color:var(--amber-700,var(--color-warning))}.cal-stats-rank-verdict.tone-alert .cal-stats-rank-verdict-tone{color:var(--color-danger)}.cal-stats-rank-verdict-sub{font-size:var(--text-2xs);color:var(--color-text-faint)}.cal-stats-rank-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cal-stats-rank-row{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-3);border-bottom:1px solid var(--color-border-subtle);grid-template-columns:28px minmax(72px,max-content) minmax(140px,1fr) 68px minmax(220px,30ch);display:grid}.cal-stats-rank-row.is-me{background:var(--bg-header);border-radius:var(--radius-md)}.cal-stats-rank-no{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text-muted);text-align:center;font-variant-numeric:tabular-nums}.cal-stats-rank-name{padding-left:var(--space-3);border:0;border-left:3px solid var(--member-color,var(--border-default));font:inherit;font-weight:var(--weight-semibold);color:var(--color-text);text-align:left;cursor:pointer;word-break:keep-all;background:0 0;display:inline-block}button.cal-stats-rank-name:hover{color:var(--color-accent)}button.cal-stats-rank-name:focus-visible{outline:var(--focus-ring);outline-offset:2px}.cal-stats-rank-row.is-me .cal-stats-rank-name{font-weight:var(--weight-bold)}.cal-stats-rank-bar{background:var(--color-border-subtle);border-radius:2px;height:14px;display:flex;overflow:hidden}.cal-stats-rank-seg{height:100%;display:block}.cal-stats-rank-val{font-size:var(--text-base);color:var(--color-text);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cal-stats-rank-val strong{font-size:var(--text-lg);font-weight:var(--weight-bold)}.cal-stats-rank-detail{font-size:var(--text-2xs);color:var(--color-text-muted);word-break:keep-all;line-height:1.5}.cal-stats-rank-sofar{opacity:.85;display:block}.cal-stats-rank-foot{justify-content:space-between;align-items:baseline;gap:var(--space-6);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.cal-stats-rank-legend{gap:var(--space-5);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.cal-stats-rank-legend-item{align-items:center;gap:var(--space-2);font-size:var(--text-2xs);color:var(--color-text-muted);display:inline-flex}.cal-stats-rank-legend-item i{border-radius:2px;width:10px;height:10px}.cal-stats-rank-note{font-size:var(--text-2xs);color:var(--color-text-muted);word-break:keep-all;flex:320px;margin:0;line-height:1.6}.cal-stats-rank-note strong{color:var(--color-text);font-weight:var(--weight-semibold)}@media (width<=640px){.cal-stats-rank-row{gap:var(--space-2) var(--space-3);grid-template-columns:20px 1fr auto;grid-template-areas:"no name val"".bar bar"".detail detail"}.cal-stats-rank-no{grid-area:no}.cal-stats-rank-name{grid-area:name}.cal-stats-rank-val{grid-area:val}.cal-stats-rank-bar{grid-area:bar}.cal-stats-rank-detail{grid-area:detail}}.cal-stats-months-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.cal-stats-months-table{border-collapse:collapse;font-size:var(--text-sm);font-variant-numeric:tabular-nums}@media (width>=900px){.cal-stats-months-table{width:100%}.cal-stats-months-table th.mon,.cal-stats-months-table td.mon{width:5%}.cal-stats-months-table th.sum,.cal-stats-months-table td.sum{width:8%}}.cal-stats-months-table th,.cal-stats-months-table td{border:1px solid var(--color-border-subtle);padding:var(--space-3) var(--space-2);text-align:center;min-width:34px}.cal-stats-months-table th.name,.cal-stats-months-table td.name{text-align:left;white-space:nowrap;min-width:84px;font-weight:var(--weight-medium)}.cal-stats-months-name{padding-left:var(--space-3);border-left:3px solid var(--member-color,var(--border-default));display:inline-block}.cal-stats-months-table thead th{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);background:var(--bg-header)}.cal-stats-months-table td.mon{font-weight:var(--weight-medium)}.cal-stats-months-table .future{opacity:.55}.cal-stats-months-table td.sum,.cal-stats-months-table th.sum{background:var(--bg-header);font-weight:var(--weight-semibold);white-space:nowrap}.cal-stats-months-table td.sum .dim2{font-size:var(--text-2xs);font-weight:var(--weight-normal);color:var(--color-text-faint);display:block}.cal-stats-months-table tbody tr.is-me td,.cal-stats-months-table tbody tr.is-me th{border-color:var(--border-strong)}.cal-stats-months-table tbody tr.is-me th.name{font-weight:var(--weight-bold)}.cal-stats-months-table td .dim{color:var(--color-text-muted);opacity:.5}.cal-stats-months-table tfoot td,.cal-stats-months-table tfoot th{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--bg-header)}.cal-stats-months-note{margin:var(--space-4) 0 0;font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all}.cal-stats-months-note strong{color:var(--color-text);font-weight:var(--weight-semibold)}.cal-stats-when-tabs{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.cal-stats-when-tab{padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--bg-app);font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer}.cal-stats-when-tab.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff;font-weight:var(--weight-semibold)}.cal-stats-when-tab:focus-visible{outline:var(--focus-ring);outline-offset:2px}.cal-stats-when-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.cal-stats-when-day{padding:var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-app)}.cal-stats-when-day.is-me{border-color:var(--color-accent);background:var(--bg-header)}.cal-stats-when-date{align-items:baseline;gap:var(--space-2);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap;display:flex}.cal-stats-when-date strong{font-size:var(--text-base);font-weight:var(--weight-bold)}.cal-stats-when-date .dow{font-size:var(--text-xs);color:var(--color-text-muted)}.cal-stats-when-date .dow-0{color:var(--color-danger)}.cal-stats-when-date .dow-6{color:var(--color-accent)}.cal-stats-when-date .hol{font-size:var(--text-2xs);color:var(--color-danger);word-break:keep-all}.cal-stats-when-people{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.cal-stats-when-people li{align-items:center;gap:var(--space-2);font-size:var(--text-xs);display:flex}.cal-stats-when-people .who{padding-left:var(--space-2);border-left:3px solid var(--member-color,var(--border-default));color:var(--color-text);font-weight:var(--weight-medium);word-break:keep-all}.cal-stats-when-people li.me .who{font-weight:var(--weight-bold)}.cal-stats-when-people .what{font-size:var(--text-2xs);color:var(--color-text-muted);padding:1px var(--space-2);border-radius:var(--radius-sm);background:var(--bg-header)}.cal-stats-when-people .what.off{border:1px dashed var(--border-default);background:0 0}.cal-stats-when-note{margin:var(--space-5) 0 0;font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all}.cal-stats-ref-block+.cal-stats-ref-block{margin-top:var(--space-8)}.cal-stats-ref-title{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text)}.cal-stats-ref-desc{margin:0 0 var(--space-4);max-width:68ch;font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all;line-height:1.6}.cal-stats-ref-desc strong{color:var(--color-text);font-weight:var(--weight-semibold)}.cal-stats-load-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.cal-stats-load-table{border-collapse:collapse;width:100%;max-width:560px;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.cal-stats-load-table th,.cal-stats-load-table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border-subtle)}.cal-stats-load-table td.num,.cal-stats-load-table th.num{text-align:right;white-space:nowrap}.cal-stats-load-table thead th{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.cal-stats-load-table tbody tr.is-me{background:var(--bg-header)}.cal-stats-load-table tbody tr.is-me th.name{font-weight:var(--weight-bold)}.cal-stats-load-name{padding-left:var(--space-3);border-left:3px solid var(--member-color,var(--border-default));color:var(--color-text);word-break:keep-all;display:inline-block}.cal-stats-load-val{font-weight:var(--weight-semibold)}.cal-stats-load-table .dim{color:var(--color-text-muted);font-weight:var(--weight-normal)}.cal-stats-v2-fairness-tone{color:var(--color-text-muted);font-weight:var(--weight-medium);margin-left:var(--space-2)}.cal-stats-v2-fairness-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-width:1280px;display:grid}@media (width>=1281px){.cal-stats-v2-fairness-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.cal-stats-v2-fairness-card{padding:var(--space-6) var(--space-7);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);border-left-width:3px}.cal-stats-v2-fairness-card.tone-good{border-left-color:var(--color-success)}.cal-stats-v2-fairness-card.tone-ok{border-left-color:var(--color-text-muted)}.cal-stats-v2-fairness-card.tone-warn{border-left-color:var(--color-warning)}.cal-stats-v2-fairness-card.tone-alert{border-left-color:var(--color-danger)}.cal-stats-v2-fairness-kind{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text-muted);letter-spacing:.02em;text-transform:uppercase}.cal-stats-v2-fairness-range{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text);margin:4px 0}.cal-stats-v2-fairness-range strong{font-size:var(--text-2xl);font-weight:var(--weight-extrabold)}.cal-stats-v2-fairness-detail{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2)}.cal-stats-v2-fairness-members{gap:var(--space-1);font-size:var(--text-2xs);color:var(--color-text-faint);flex-direction:column;display:flex}.cal-stats-v2-fairness-members .many{color:var(--color-text-muted)}.cal-stats-v2-fairness-members .few{color:var(--color-text-faint)}.cal-stats-v2-grid{gap:var(--space-6);grid-template-columns:repeat(2,1fr);display:grid}.cal-stats-v2-card{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-7);flex-direction:column;min-height:240px;display:flex}.cal-stats-v2-card-head{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);font-size:var(--text-sm);color:var(--color-text-muted);display:flex}.cal-stats-v2-card-toggle{gap:var(--space-1);padding:var(--space-1);background:var(--bg-panel);border-radius:var(--radius-md);margin-left:auto;display:inline-flex}.cal-stats-v2-card-toggle button{padding:var(--space-1) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none}.cal-stats-v2-card-toggle button.active{background:var(--bg-app);color:var(--color-text);font-weight:var(--weight-semibold)}.cal-stats-v2-empty{text-align:center;color:var(--color-text-faint);font-size:var(--text-xs);padding:40px}@media (width<=640px){.cal-stats-v2{height:auto;padding:var(--space-6) var(--space-7) var(--space-12);max-width:100%;overflow:hidden visible}.cal-stats-v2-fairness-grid,.cal-stats-v2-grid{grid-template-columns:1fr}}.cal-stats-hint{margin-top:var(--space-6);padding:var(--space-4) var(--space-6);background:var(--bg-header);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-text-muted)}@media (width<=640px){.cal-stats-grid{grid-template-columns:1fr}}.cal-stats-pick{margin:0 0 var(--space-6);padding:var(--space-5) var(--space-6);background:var(--bg-header);border:1px solid var(--border-default);border-radius:var(--radius-xl)}.cal-stats-pick-head{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.cal-stats-pick-title{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text);margin:0}.cal-stats-pick-sub{font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all}.cal-stats-pick-row{align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.cal-stats-pick-label{min-width:56px;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);flex:none}.cal-stats-pick-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.cal-stats-pick-chip{padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--bg-app);min-height:32px;font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer}.cal-stats-pick-chip:hover{border-color:var(--border-strong)}.cal-stats-pick-chip.on{background:var(--color-accent);border-color:var(--color-accent);color:#fff;font-weight:var(--weight-semibold)}.cal-stats-pick-chip:focus-visible{outline:var(--focus-ring);outline-offset:2px}.cal-stats-pick-actions{align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle);flex-wrap:wrap;display:flex}.cal-stats-pick-summary{font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all;flex:260px}.cal-stats-pick-summary strong{color:var(--color-text);font-weight:var(--weight-semibold)}.cal-stats-pick-reset,.cal-stats-pick-save{padding:var(--space-2) var(--space-5);border-radius:var(--radius-md);min-height:34px;font-size:var(--text-xs);cursor:pointer}.cal-stats-pick-reset{border:1px solid var(--border-default);background:var(--bg-app);color:var(--color-text-muted)}.cal-stats-pick-save{border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;font-weight:var(--weight-semibold)}.cal-stats-pick-save:disabled{opacity:.45;cursor:not-allowed}.cal-stats-pick-reset:focus-visible,.cal-stats-pick-save:focus-visible{outline:var(--focus-ring);outline-offset:2px}@media print{.app-header,.app-mode-tabs,.app-mode-tab,.app-header-shortcuts-btn,.app-drawer,.app-drawer-backdrop,.mobile-bottom-nav,.mobile-menu-backdrop,.mobile-menu-drawer,.toast-container,.notification-bell,.notification-dropdown,.calendar-page-header,.category-page-header,.ui-tab-bar,.modal-backdrop,.modal-overlay,.kbd-modal-backdrop,.confirm-dialog-backdrop,.hero-today-modal-backdrop,.home-cell-peek-backdrop,.hero-detail-backdrop,.notice-modal-backdrop,.doc-preview-modal-backdrop,.file-browser-modal-backdrop,.quotes-modal-backdrop,.os-modal-backdrop,.qs-modal-dimmer,.onboarding-backdrop,.projects-modal-backdrop,.note-modal-backdrop,.gcal-conn-backdrop,.ms-compose-backdrop,.dr-upload-backdrop,.dr-fallback-backdrop,.gsearch-backdrop,.gsearch-modal,.note-search-modal,.cal-color-picker,.ui-more-menu,.file-browser-preview,.file-browser-ctx,.ui-modal-backdrop,.node-search-backdrop,.cal-day-sheet-backdrop,.network-ip-side-backdrop,.rcp-router-more-backdrop,.wa-modal-backdrop,.note-sidebar-backdrop{display:none!important}.page-transition-in,.dr-viewer-enter,.cal-subtab-enter,.skeleton{animation:none!important}body,html{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.page-below-header,.category-page-body,body{height:auto!important;min-height:0!important;overflow:visible!important}#root{height:auto!important}body{color:#000!important;background:#fff!important}.app-header,.calendar-page-header,.app-mode-tabs,.home-card-head .home-card-action{display:none!important}.calendar-page,.calendar-page-body,.cal-stats-view{box-shadow:none!important;border:none!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important}.cal-stats-card{page-break-inside:avoid;break-inside:avoid}.cal-stats-grid{grid-template-columns:repeat(2,1fr)}.cal-stats-hint{font-size:var(--text-3xs);page-break-inside:avoid}.cal-stats-toolbar,.cal-stats-print-btn{display:none!important}.daily-report-page{height:auto!important;display:block!important;overflow:visible!important}.daily-report-page .dr-header,.daily-report-page .dr-list-panel,.daily-report-page .dr-list,.daily-report-page .dr-search,.daily-report-page .dr-tabs,.dr-detail-actions,.dr-detail-back,.dr-card-copy,.dr-card-star,.dr-cards-warning,.dr-convert-warning,.dr-convert-error{display:none!important}.dr-detail,.dr-detail-body,.dr-viewer-enter,.dr-cards-container{height:auto!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.dr-detail-header{border-bottom:1px solid #94a3b8!important;margin-bottom:8px!important;padding:0 0 6px!important}.dr-detail-title-wrap h3{font-size:var(--text-md)!important;font-weight:var(--weight-bold)!important}.dr-detail-filename{margin-top:var(--space-1);display:block;font-size:var(--text-3xs)!important;color:var(--color-text-muted)!important}.dr-card-item{page-break-inside:avoid;break-inside:avoid;box-shadow:none!important;border:1px solid #94a3b8!important;margin-bottom:6px!important;padding:8px 10px!important}.dr-card-item-title{font-size:var(--text-sm)!important}.dr-card-details{font-size:var(--text-xs)!important;line-height:var(--leading-normal)!important}.dr-card-progress-bar{display:none!important}}.admin-settings-page{flex:1;max-width:none;margin:0;padding:24px 32px 60px;overflow-y:auto}.admin-settings-error{margin-bottom:var(--space-5);padding:var(--space-4) var(--space-6);background:var(--red-50);border:1px solid var(--red-300);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--red-600)}.admin-settings-hint{margin-top:var(--space-7);padding:var(--space-5) var(--space-6);background:var(--bg-header);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-normal)}.admin-hint-sangam{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--border-default);word-break:keep-all}.admin-settings-hint-ok{margin-top:var(--space-4);align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:#059669;display:inline-flex}.admin-settings-loading,.admin-settings-empty{padding:var(--space-10);text-align:center;color:var(--color-text-faint);font-size:var(--text-base)}.admin-settings-badge{font-size:var(--text-3xs);color:var(--color-text-muted);font-weight:var(--weight-medium)}.admin-settings-input-sm{padding:var(--space-2) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);outline:none;min-width:0}.admin-settings-input-sm:focus{border-color:var(--color-accent)}.admin-settings-select-sm{padding:var(--space-1) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);background:var(--bg-app);cursor:pointer}.admin-settings-icon-btn{width:var(--space-11);height:var(--space-11);background:var(--bg-app);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.admin-settings-icon-btn:hover:not(:disabled),.admin-settings-icon-btn:focus-visible:not(:disabled){background:var(--bg-header);border-color:var(--color-text-muted)}.admin-settings-icon-btn:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.admin-settings-icon-btn.danger{color:var(--color-danger);border-color:var(--red-300)}.admin-settings-icon-btn.danger:hover:not(:disabled),.admin-settings-icon-btn.danger:focus-visible:not(:disabled){background:var(--bg-danger);border-color:var(--color-danger)}.admin-settings-groups{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.admin-settings-group{background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6)}.admin-settings-group-head{margin-bottom:var(--space-4);font-size:var(--text-base);color:var(--color-text);justify-content:space-between;align-items:center;display:flex}.admin-settings-group-count{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-normal)}.admin-settings-group-list{gap:var(--space-2);flex-direction:column;margin:0 0 10px;padding:0;list-style:none;display:flex}.admin-settings-group-item{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-sm);display:flex}.admin-settings-group-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.admin-settings-group-empty{padding:var(--space-5);text-align:center;font-size:var(--text-xs);color:var(--color-text-faint)}.admin-settings-group-add{gap:var(--space-3);display:flex}.admin-settings-group-add .admin-settings-input-sm{flex:1}.admin-settings-table{border-collapse:collapse;width:100%;font-size:var(--text-sm);margin-bottom:var(--space-6)}@media (width<=640px){.admin-settings-page table,.activity-log-page table{-webkit-overflow-scrolling:touch;max-width:100%;display:block;overflow-x:auto}}.alp-domain-chips{margin-left:auto}@media (width<=640px){.alp-domain-chips{flex-basis:100%;margin-left:0}}.ooo-add-grid{grid-template-columns:var(--col-w-md) var(--col-w-md) var(--col-w-md) var(--col-w-md) 1fr auto;gap:var(--space-3);align-items:center;display:grid}@media (width<=640px){.ooo-add-grid{grid-template-columns:1fr;align-items:stretch}}.trash-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);display:flex}@media (width<=640px){.trash-row{flex-wrap:wrap}.trash-row .trash-row-label{flex-basis:100%}}.admin-settings-table th,.admin-settings-table td{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-default);text-align:left;vertical-align:middle}.admin-settings-table th{background:var(--bg-panel);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);z-index:1;box-shadow:0 1px 0 0 var(--border-default);position:sticky;top:0}.user-accounts-table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.user-accounts-table th:first-child,.user-accounts-table td:first-child{background:var(--bg-panel);z-index:2;box-shadow:4px 0 6px -4px color-mix(in srgb, var(--color-text) 22%, transparent);min-width:90px;position:sticky;left:0}.user-accounts-table th:last-child,.user-accounts-table td:last-child{background:var(--bg-panel);z-index:2;box-shadow:-4px 0 6px -4px color-mix(in srgb, var(--color-text) 22%, transparent);position:sticky;right:0}.user-accounts-table thead th:first-child,.user-accounts-table thead th:last-child{z-index:3}.user-accounts-table tbody tr:hover td:first-child,.user-accounts-table tbody tr:hover td:last-child{background:var(--bg-row-alt)}.user-accounts-table th{word-break:keep-all}@media (width<=640px){.user-accounts-table th,.user-accounts-table td{padding:var(--space-3) var(--space-4);font-size:var(--text-xs)}}.admin-settings-row-edit{align-items:center;gap:var(--space-2);display:flex}.admin-settings-row-actions{gap:var(--space-2);display:flex}.user-accounts-cards{gap:var(--space-4);margin-bottom:var(--space-6);flex-direction:column;display:flex}.user-account-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-panel);padding:var(--space-5);gap:var(--space-4);flex-direction:column;display:flex}.user-account-card-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.user-account-card-id strong{font-size:var(--text-base)}.user-account-card-fields{gap:var(--space-3) var(--space-4);grid-template-columns:1fr 1fr;display:grid}.user-account-field{gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);flex-direction:column;display:flex}.user-account-field select{width:100%}.user-account-field .admin-settings-input-sm{min-height:var(--tap-min,44px)}.user-account-card-perms{gap:var(--space-2);flex-direction:column;display:flex}.user-account-perms-label{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-semibold)}.user-account-perms-grid{gap:var(--space-1) var(--space-4);grid-template-columns:1fr 1fr;display:grid}.user-account-perms-grid .admin-settings-switch{min-height:var(--tap-min,44px);gap:var(--space-3);font-size:var(--text-sm)}.user-account-card-guest{display:flex}.user-account-card-actions{gap:var(--space-2);border-top:1px solid var(--border-subtle);padding-top:var(--space-3);flex-wrap:wrap;display:flex}.user-account-card-actions .admin-settings-icon-btn{width:auto;height:auto;min-height:var(--tap-min,44px);padding:var(--space-2) var(--space-4);gap:var(--space-2);font-size:var(--text-xs);flex:auto}.admin-settings-switch{align-items:center;gap:var(--space-2);cursor:pointer;display:inline-flex}.admin-settings-switch input[type=checkbox]{width:var(--space-7);height:var(--space-7);accent-color:var(--color-accent)}.admin-settings-add-row{gap:var(--space-4);padding:var(--space-5) var(--space-6);background:var(--bg-panel);border:1px dashed var(--border-strong);border-radius:var(--radius-md);font-size:var(--text-sm);align-items:center;display:flex}.admin-settings-add-row .admin-settings-input-sm{flex:1;min-width:80px}.admin-settings-inline-dialog{gap:var(--space-4);padding:var(--space-5) var(--space-6);margin-bottom:var(--space-5);background:var(--amber-100);border:1px solid var(--amber-300);border-radius:var(--radius-md);font-size:var(--text-sm);align-items:center;display:flex}.admin-settings-inline-dialog .admin-settings-input-sm{flex:1}.admin-settings-log-summary{align-items:center;gap:var(--space-8);padding:var(--space-5) var(--space-6);background:var(--bg-hover);border:1px solid var(--accent-200);border-radius:var(--radius-md);margin-bottom:var(--space-5);font-size:var(--text-sm);color:#1e3a8a;display:flex}.admin-settings-log-summary>:last-child{margin-left:auto}.admin-settings-log-bulk{gap:var(--space-4);padding:var(--space-5) var(--space-6);background:var(--bg-panel);border-top:1px solid var(--border-default);font-size:var(--text-sm);color:var(--color-text-muted);align-items:center;display:flex}.admin-settings-cal-group{margin-bottom:var(--space-7)}.admin-settings-cal-group-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin-bottom:var(--space-3);text-transform:uppercase;letter-spacing:.04em}.admin-toggle-row{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-base);cursor:pointer;display:flex}.admin-toggle-row--select{align-items:flex-start}.admin-toggle-row--select:has(input:checked){border-color:var(--accent-600)}.admin-toggle-row--select>input{margin-top:2px}@media (width<=640px){.admin-settings-wrap{flex-direction:column}.admin-settings-nav{border-right:none;border-bottom:1px solid var(--border-default);width:100%;padding:var(--space-5);-webkit-overflow-scrolling:touch;flex:none;max-height:48vh;overflow-y:auto}.admin-settings-nav ul{flex-flow:wrap}.admin-settings-nav-group{margin-top:var(--space-5)}.admin-settings-nav-group-label{padding-bottom:var(--space-3)}.admin-settings-page{padding:var(--space-8)}}.wage-page{height:100%;padding:var(--space-8) var(--space-10);gap:var(--space-7);max-width:var(--page-max-wide);box-sizing:border-box;flex-direction:column;width:100%;margin-inline:auto;display:flex;overflow:auto}.wage-toolbar{align-items:center;gap:var(--space-7);flex-wrap:wrap;display:flex}.wage-nav{align-items:center;gap:var(--space-3);display:inline-flex}.wage-nav-title{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text);text-align:center;min-width:110px}.wage-user-picker{align-items:center;gap:var(--space-3);font-size:var(--text-base);display:inline-flex}.wage-user-picker label{color:var(--color-text-muted)}.wage-user-picker input{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-base);width:120px}.wage-user-picker select{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);background:var(--bg-panel);color:var(--color-text);min-height:32px}@media (width<=640px),(pointer:coarse){.wage-user-picker select,.wage-nav .ui-iconbtn,.wage-nav .ui-btn{min-height:36px}}.wage-actions{gap:var(--space-4);margin-left:auto;display:inline-flex}.wage-error{color:var(--red-600);padding:var(--space-5) var(--space-7);border-radius:var(--radius-md);font-size:var(--text-base);background:#fef2f2;border:1px solid #fecaca}.wage-error .btn{margin-left:var(--space-4)}.wage-loading{justify-content:center;align-items:center;gap:var(--space-4);color:var(--color-text-muted);padding:40px;display:flex}.wage-table-wrap{background:linear-gradient(to right, var(--bg-app), transparent) 0 0 / 28px 100% no-repeat local, linear-gradient(to left, var(--bg-app), transparent) 100% 0 / 28px 100% no-repeat local, radial-gradient(farthest-side at 0 50%, color-mix(in srgb, var(--color-text) 18%, transparent), transparent) 0 0 / 11px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, color-mix(in srgb, var(--color-text) 18%, transparent), transparent) 100% 0 / 11px 100% no-repeat scroll, var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:auto}.wage-table{border-collapse:collapse;width:100%;font-size:var(--text-base)}.wage-table th,.wage-table td{padding:var(--space-4) var(--space-5);text-align:center;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #f1f5f9}.wage-table th{background:var(--bg-panel);font-weight:var(--weight-semibold);color:var(--color-text-muted);font-size:var(--text-sm);border-bottom:1px solid var(--border-default)}.wage-table th.num,.wage-table td.num{text-align:right;font-variant-numeric:tabular-nums}.wage-table tbody tr:hover{background:var(--bg-hover-neutral)}.wage-allview-table thead th:first-child,.wage-allview-table .wage-allview-name-cell{z-index:2;background:var(--bg-panel);box-shadow:4px 0 6px -4px color-mix(in srgb, var(--color-text) 22%, transparent);position:sticky;left:0}.wage-allview-table thead th:last-child,.wage-allview-table tfoot td:last-child,.wage-allview-table tbody td:last-child:not(.wage-empty):not(.wage-allview-collapsed-msg){z-index:2;background:var(--bg-panel);box-shadow:-4px 0 6px -4px color-mix(in srgb, var(--color-text) 22%, transparent);position:sticky;right:0}.wage-allview-table thead th:first-child,.wage-allview-table thead th:last-child{z-index:3}.wage-allview-table tbody tr:hover .wage-allview-name-cell,.wage-allview-table tbody tr:hover td:last-child:not(.wage-empty):not(.wage-allview-collapsed-msg){background:var(--bg-hover-neutral)}.wage-personal-table thead th:first-child,.wage-personal-table tbody td:first-child{z-index:2;background:var(--bg-panel);box-shadow:4px 0 6px -4px color-mix(in srgb, var(--color-text) 22%, transparent);position:sticky;left:0}.wage-personal-table thead th:last-child,.wage-personal-table tfoot td:last-child,.wage-personal-table tbody td:last-child:not(.wage-empty){z-index:2;background:var(--bg-panel);box-shadow:-4px 0 6px -4px color-mix(in srgb, var(--color-text) 22%, transparent);position:sticky;right:0}.wage-personal-table thead th:first-child,.wage-personal-table thead th:last-child{z-index:3}.wage-personal-table tbody tr:hover td:first-child,.wage-personal-table tbody tr:hover td:last-child:not(.wage-empty){background:var(--bg-hover-neutral)}.wage-table .wage-content{white-space:normal;min-width:180px;color:var(--color-text);text-align:left}.wage-table th.wage-content-th{text-align:left}.wage-table .wage-memo{color:var(--color-text-muted);font-size:var(--text-sm);text-overflow:ellipsis;text-align:left;max-width:140px;overflow:hidden}.wage-table th.wage-memo-th{text-align:left}.wage-table tfoot td{background:var(--bg-panel);border-top:2px solid var(--border-default);padding:var(--space-5);font-weight:var(--weight-semibold);color:var(--color-text);border-bottom:none}.wage-empty{text-align:center;color:var(--color-text-faint);font-size:var(--text-base);padding:40px!important}.wage-row-actions{gap:var(--space-2);display:inline-flex}.wage-row-editing td{padding:var(--space-3) var(--space-4)}.wage-row-editing input,.wage-row-editing select{box-sizing:border-box;width:100%;padding:var(--input-pad-y-xs) var(--input-pad-x-xs);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-app);color:var(--color-text);font-family:inherit;font-size:var(--text-sm);line-height:1.4}.wage-row-editing td.num input{text-align:right;font-variant-numeric:tabular-nums}.wage-row-editing input:focus,.wage-row-editing select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-accent) 18%, transparent);outline:none}.wage-row-editing input:disabled{background:var(--bg-panel);color:var(--color-text-faint);cursor:not-allowed}.wage-row-editing .wage-comp-leave-check{justify-content:flex-start}.wage-allview-tools{align-items:center;gap:var(--space-6);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.wage-filter-chips{gap:var(--space-3);flex-wrap:wrap;display:inline-flex}.wage-filter-chip{align-items:center;gap:var(--space-3);border:1px solid var(--border-default);background:var(--bg-panel);color:var(--color-text-muted);font-size:var(--text-sm);padding:var(--space-2) var(--space-6);border-radius:var(--radius-pill);cursor:pointer;transition:background var(--t-base), color var(--t-base), border-color var(--t-base);display:inline-flex}.wage-filter-chip:hover:not(:disabled){background:color-mix(in srgb, var(--color-text) 6%, transparent)}.wage-filter-chip.is-active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent)}.wage-filter-chip.has-attention:not(.is-active){border-color:color-mix(in srgb, var(--color-warning) 50%, var(--border-default));color:var(--color-warning)}.wage-filter-chip:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.wage-filter-count{min-width:var(--space-9);height:var(--space-9);border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold);font-size:var(--text-xs);background:color-mix(in srgb, currentColor 16%, transparent);justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.wage-filter-chip.is-active .wage-filter-count{color:var(--color-text-on-accent);background:#ffffff40}.wage-allview-bulk-btn{align-items:center;gap:var(--space-3);border-color:color-mix(in srgb, var(--color-success) 45%, var(--border-default));color:var(--color-success);margin-left:auto;display:inline-flex}.wage-allview-bulk-btn:hover:not(:disabled){background:var(--bg-success)}.wage-allview-name-cell{background:color-mix(in srgb, var(--color-text) 2%, transparent);vertical-align:top!important;text-align:left!important;padding:10px 12px!important}.wage-summary-name{font-weight:var(--weight-bold);color:var(--color-text);cursor:pointer;font-size:var(--text-base);text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:color-mix(in srgb, var(--color-text) 30%, transparent);text-decoration-color:color-mix(in srgb, var(--color-text) 30%, transparent);background:0 0;border:none;margin:0;padding:0}.wage-summary-name:hover{color:var(--color-accent)}.wage-allview-name-stats{margin-top:var(--space-3);gap:var(--space-2);font-size:var(--text-xs);flex-direction:column;display:flex}.wage-allview-name-total{font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.wage-allview-name-total strong{color:var(--color-text);font-weight:var(--weight-bold);font-size:var(--text-sm);margin-right:var(--space-2)}.wage-allview-name-count{color:var(--color-text-faint)}.wage-allview-name-flags{gap:var(--space-2);flex-wrap:wrap;display:flex}.wage-allview-name-flag{border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:var(--leading-normal);align-items:center;padding:1px 7px;display:inline-flex}.wage-allview-name-flag.warn{background:var(--bg-warning);color:var(--color-warning)}.wage-allview-name-flag.danger{background:var(--bg-danger);color:var(--color-danger)}.wage-allview-name-flag.ok{background:var(--bg-success);color:var(--color-success)}.wage-allview-name-sites{gap:var(--space-2);margin-bottom:var(--space-1);flex-wrap:wrap;display:flex}.wage-site-chip{border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:var(--leading-normal);letter-spacing:-.2px;align-items:center;padding:1px 7px;display:inline-flex}.wage-site-chip.gw{background:color-mix(in srgb, var(--green-500) 14%, transparent);color:var(--green-500)}.wage-site-chip.sg{background:color-mix(in srgb, var(--amber-500) 14%, transparent);color:var(--amber-500)}.wage-allview-row-gw .wage-allview-cat{border-left:3px solid var(--green-500)}.wage-allview-row-sg .wage-allview-cat{border-left:3px solid var(--amber-500)}.wage-filter-chip-site-gw.is-active{background:var(--green-500);border-color:var(--green-500)}.wage-filter-chip-site-sg.is-active{background:var(--amber-500);border-color:var(--amber-500)}.wage-filter-divider{background:var(--border-default);align-self:stretch;width:1px;margin:0 4px}.wage-allview-tool-actions{align-items:center;gap:var(--space-4);margin-left:auto;display:inline-flex}.wage-allview-collapse-btn{font-size:var(--text-sm);align-items:center;display:inline-flex}.wage-allview-name-head{align-items:center;gap:var(--space-2);display:flex}.wage-allview-collapse-toggle{width:var(--space-9);height:var(--space-9);color:var(--color-text-faint);cursor:pointer;font-size:var(--text-sm);line-height:var(--leading-none);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.wage-allview-collapse-toggle:hover{color:var(--color-text);background:color-mix(in srgb, var(--color-text) 8%, transparent)}.wage-allview-collapsed-row td.wage-allview-collapsed-msg{color:var(--color-text-faint);background:color-mix(in srgb, var(--color-text) 1.5%, transparent);border-left:3px solid #0000;font-style:italic;text-align:left!important}.wage-allview-collapsed-row.wage-allview-row-gw .wage-allview-collapsed-msg{border-left-color:var(--green-500);opacity:.6}.wage-allview-collapsed-row.wage-allview-row-sg .wage-allview-collapsed-msg{border-left-color:var(--amber-500);opacity:.6}.wage-empty-art{margin-bottom:var(--space-4);color:color-mix(in srgb, var(--color-text-faint) 70%, transparent);justify-content:center;display:flex}.wage-empty-sub{margin-top:var(--space-2);font-size:var(--text-sm);color:color-mix(in srgb, var(--color-text-faint) 80%, transparent)}.wage-field-inline-error{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--color-danger);background:var(--bg-danger);border-radius:var(--radius-sm);align-items:center;gap:var(--space-2);flex-basis:100%;margin-top:-2px;display:inline-flex}.wage-allview-name-stats{gap:var(--space-2)}.wage-allview-name-total strong{font-size:var(--text-base)}.wage-allview-name-sites{opacity:.85;margin-top:1px}.wage-allview-name-sites .wage-site-chip{font-size:var(--text-2xs);padding:0 5px}.wage-deadline-badge.danger{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-danger) 22%, transparent)}.wage-deadline-badge.warn,.wage-deadline-badge.danger{font-weight:var(--weight-extrabold)}.wage-allview-collapse-toggle svg{display:block}.wage-name-site-marker{gap:var(--space-1);flex-shrink:0;align-items:center;display:inline-flex}.wage-name-site-mark{border-radius:var(--radius-sm);min-width:19px;height:19px;font-size:var(--text-xs);font-weight:var(--weight-extrabold);letter-spacing:-.5px;line-height:var(--leading-none);cursor:help;justify-content:center;align-items:center;padding:0 3px;display:inline-flex}.wage-name-site-mark.gw{background:color-mix(in srgb, var(--green-500) 22%, transparent);color:var(--green-500)}.wage-name-site-mark.sg{background:color-mix(in srgb, var(--amber-500) 22%, transparent);color:var(--amber-500)}.wage-allview-site-group td{font-size:var(--text-sm);border-top:2px solid var(--border-default);border-bottom:1px solid var(--border-default);border-left:4px solid #0000;text-align:left!important;background:color-mix(in srgb, var(--color-text) 4%, transparent)!important;padding:7px 12px!important}.wage-allview-site-group-gw td{border-left-color:var(--green-500);background:color-mix(in srgb, var(--green-500) 7%, transparent)!important}.wage-allview-site-group-sg td{border-left-color:var(--amber-500);background:color-mix(in srgb, var(--amber-500) 7%, transparent)!important}.wage-allview-site-group-label{font-weight:var(--weight-extrabold);font-size:var(--text-base);letter-spacing:-.3px;margin-right:var(--space-6);display:inline-block}.wage-allview-site-group-gw .wage-allview-site-group-label{color:var(--green-500)}.wage-allview-site-group-sg .wage-allview-site-group-label{color:var(--amber-500)}.wage-allview-site-group-meta{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.wage-allview-site-group-meta strong{color:var(--color-text);font-weight:var(--weight-bold)}.wage-content>span:first-child{margin-right:var(--space-3)}.wage-anomaly-chip{align-items:center;gap:var(--space-1);padding:1px var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:var(--weight-medium);white-space:nowrap;vertical-align:middle;cursor:help;background:var(--bg-warning);color:var(--color-warning);display:inline-flex}.wage-anomaly-chip.is-over{background:var(--bg-danger);color:var(--color-danger)}.wage-allview-cat-anomaly{font-weight:var(--weight-bold)}.wage-viewmode-toggle{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-panel);display:inline-flex;overflow:hidden}.wage-viewmode-btn{padding:var(--space-2) var(--space-6);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);cursor:pointer;border:none;border-right:1px solid var(--border-default);background:0 0}.wage-viewmode-btn:last-child{border-right:none}.wage-viewmode-btn:hover{background:color-mix(in srgb, var(--color-text) 6%, transparent)}.wage-viewmode-btn.is-active{background:var(--color-accent);color:var(--color-text-on-accent)}.wage-summary-row td{border-bottom:1px solid var(--border-default);background:var(--bg-panel)!important;padding:9px 12px!important}.wage-summary-row.wage-allview-row-gw td{border-left:3px solid var(--green-500)}.wage-summary-row.wage-allview-row-sg td{border-left:3px solid var(--amber-500)}.wage-summary-row:hover td{background:color-mix(in srgb, var(--color-text) 3%, transparent)!important}.wage-summary-row-cell{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex;text-align:left!important}.wage-summary-row-expand{width:var(--space-11);height:var(--space-11);color:var(--color-text-faint);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.wage-summary-row-expand:hover{color:var(--color-text);background:color-mix(in srgb, var(--color-text) 8%, transparent)}.wage-summary-row-expand svg{display:block}.wage-summary-meta{align-items:center;gap:var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums;margin-left:var(--space-2);display:inline-flex}.wage-summary-meta strong{color:var(--color-text);font-weight:var(--weight-bold)}.wage-summary-pay strong{font-size:var(--text-base)}.wage-summary-flag{align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-bold);margin-left:auto;padding:1px 7px;display:inline-flex}.wage-summary-flag.warn{background:var(--bg-warning);color:var(--color-warning)}.wage-summary-flag.danger{background:var(--bg-danger);color:var(--color-danger)}.wage-summary-detail-row td{border-bottom:1px dashed var(--border-default);font-size:var(--text-sm);background:color-mix(in srgb, var(--color-text) 1.5%, transparent)!important;padding:5px 12px 5px 36px!important}.wage-summary-detail-row.wage-allview-row-gw td{border-left:3px solid var(--green-500)}.wage-summary-detail-row.wage-allview-row-sg td{border-left:3px solid var(--amber-500)}.wage-summary-detail-cell{align-items:center;gap:var(--space-6);flex-wrap:wrap;display:flex;text-align:left!important}.wage-summary-detail-date{font-weight:var(--weight-bold);color:var(--color-text);font-variant-numeric:tabular-nums;min-width:44px}.wage-summary-detail-time{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.wage-summary-detail-cat{color:var(--color-text-muted);font-size:var(--text-xs);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--color-text) 6%, transparent);padding:1px 6px}.wage-summary-detail-content{color:var(--color-text);flex:1;min-width:100px}.wage-summary-detail-pay{font-variant-numeric:tabular-nums}.wage-summary-detail-pay strong{color:var(--color-text);font-weight:var(--weight-bold)}.wage-allview-unreg td:not(.wage-allview-name-cell){color:var(--color-text-faint);background:color-mix(in srgb, var(--color-text) 1.5%, transparent)}.wage-allview-group-start td{border-top:2px solid var(--border-default)}.wage-allview-table tbody tr:hover .wage-allview-name-cell{background:color-mix(in srgb, var(--color-text) 4%, transparent)}.wage-allview-subtotal td{font-weight:var(--weight-medium)!important;color:var(--color-text-muted)!important;background:color-mix(in srgb, var(--color-text) 2.5%, transparent)!important}.wage-allview-subtotal-label{font-weight:var(--weight-semibold);color:var(--color-text);margin-right:var(--space-6);display:inline-block}.wage-allview-subtotal-item{font-variant-numeric:tabular-nums}.wage-allview-subtotal-item strong{color:var(--color-text);font-weight:var(--weight-bold)}.wage-allview-subtotal-sep{color:var(--color-text-faint);margin:0 8px}.wage-cards{gap:var(--space-5);margin-bottom:var(--space-6);flex-direction:column;display:flex}.wage-card{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-7);gap:var(--space-3);font-size:var(--text-base);color:var(--color-text);flex-direction:column;display:flex}.wage-card-head{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.wage-card-cat{font-weight:var(--weight-semibold);font-size:var(--text-sm);padding:var(--space-1) var(--space-4);background:var(--bg-header);border-radius:var(--radius-pill);color:var(--color-text)}.wage-card-date{font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums}.wage-card-time{font-size:var(--text-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.wage-card-spacer{flex:1}.wage-card-content{font-size:var(--text-base);line-height:var(--leading-snug)}.wage-card-pays{gap:var(--space-5);font-size:var(--text-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.wage-card-pay strong{color:var(--color-text);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;margin-left:var(--space-2)}.wage-card-memo{font-size:var(--text-sm);color:var(--color-text-faint);font-style:italic}.wage-card-totals{background:var(--bg-panel);border-color:var(--border-strong)}.wage-card-grand{text-align:right;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text)}.wage-card-grand strong{font-weight:var(--weight-bold);margin-left:var(--space-3)}.wage-modal{width:min(520px,95vw)}.wage-modal .modal-body{padding:var(--space-8) var(--space-10);gap:var(--space-7);flex-direction:column;display:flex}.wage-field{gap:var(--space-2);flex-direction:column;display:flex}.wage-field label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--weight-semibold)}.wage-field label .hint{color:var(--color-text-faint);font-weight:var(--weight-normal);font-size:var(--text-xs);margin-left:var(--space-2)}.wage-field-row{gap:var(--space-6);grid-template-columns:1fr 1fr 1fr;display:grid}.wage-cat-picker{gap:var(--space-3);flex-wrap:wrap;display:flex}.wage-cat-chip{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-6);font-size:var(--text-sm);cursor:pointer;color:var(--color-text-muted)}.wage-cat-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent);font-weight:var(--weight-semibold)}.wage-inline-check{align-items:center;gap:var(--space-3);color:var(--color-text-muted);cursor:pointer;font-weight:var(--weight-normal)!important;flex-direction:row!important;display:inline-flex!important}.wage-form-note{margin:calc(var(--space-2) * -1) 0 var(--space-4);padding:var(--space-4) var(--space-5);background:var(--amber-100);border-left:3px solid var(--amber-500);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--amber-800);line-height:var(--leading-normal)}.wage-preview{background:var(--bg-panel);border:1px dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-5) var(--space-7);font-size:var(--text-sm)}.wage-preview strong{color:var(--color-text);font-size:var(--text-sm)}.wage-preview ul{gap:var(--space-1);color:var(--color-text-muted);flex-direction:column;margin:6px 0 0;padding:0;list-style:none;display:flex}.wage-preview ul li strong{color:var(--color-accent);font-size:var(--text-base)}.wage-otminus-notice{margin-bottom:var(--space-4)}.wage-override-field>label{margin-bottom:var(--space-3);display:block}.wage-override-grid{gap:var(--space-3) var(--space-4);grid-template-columns:1fr 1fr;display:grid}.wage-override-grid>div{gap:var(--space-1);flex-direction:column;display:flex}.wage-override-label{font-size:var(--text-sm);color:var(--color-text-muted)}.wage-comp-leave-tag{margin-right:var(--space-2);padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--amber-100);color:var(--amber-800);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;display:inline-block}.wage-comp-leave-check{font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;margin-top:4px;flex-direction:row!important;display:flex!important}.wage-comp-leave-check input{width:auto!important}.wage-card-comp-leave{font-size:var(--text-sm);color:var(--amber-800);margin:var(--space-1) 0}.wage-ot-minus-chips{gap:var(--space-2);margin:var(--space-2) 0;flex-wrap:wrap;display:flex}.wage-ot-minus-chip{padding:2px var(--space-2) 2px var(--space-3);border-radius:var(--radius-pill,999px);background:var(--bg-panel);border:1px solid var(--border-default);font-size:var(--text-sm);align-items:center;gap:4px;display:inline-flex}.wage-ot-minus-chip button{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.wage-ot-minus-chip button:hover{color:var(--color-danger,#c0392b)}.wage-import-modal{width:min(720px,95vw)}.wage-import-hint{color:var(--color-text-muted);font-size:var(--text-base);line-height:var(--leading-normal);margin:0 0 12px}.wage-import-empty{padding:var(--space-15);text-align:center;color:var(--color-text-faint);background:var(--bg-panel);border:1px dashed var(--border-default);border-radius:var(--radius-md)}.wage-import-list{gap:var(--space-3);flex-direction:column;max-height:480px;display:flex;overflow-y:auto}.wage-import-list-head{align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-5);margin-bottom:var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);border-bottom:1px solid var(--border-default);display:flex}.wage-import-row{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);grid-template-columns:32px 110px 70px 14px 70px 1fr;display:grid}.wage-import-row.off{opacity:.5}.wage-import-check{display:inline-flex}.wage-import-date{align-items:center;gap:var(--space-3);font-size:var(--text-base);display:inline-flex}.wage-import-date strong{color:var(--color-text);font-variant-numeric:tabular-nums}.wage-import-tag{font-size:var(--text-xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-xl);font-weight:var(--weight-semibold)}.wage-import-tag.weekend{background:var(--accent-100);color:var(--accent-700)}.wage-import-tag.holiday{background:var(--bg-danger);color:var(--red-600)}.wage-import-tag.weekday{color:#3730a3;background:#e0e7ff}.wage-import-time{border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);text-align:center;font-variant-numeric:tabular-nums}.wage-import-dash{color:var(--color-text-faint);text-align:center}.wage-import-time:invalid:not(:placeholder-shown),.wage-modal input[pattern]:invalid:not(:placeholder-shown){border-color:var(--color-danger);background:var(--bg-danger)}.wage-import-meta-diff{align-items:center;gap:var(--space-1);border-radius:var(--radius-sm);background:var(--bg-info);color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:-.2px;white-space:nowrap;cursor:help;padding:1px 6px;display:inline-flex}.wage-import-content-cell{align-items:center;gap:var(--space-3);min-width:0;display:flex}.wage-import-content-cell .wage-import-meta-diff{white-space:nowrap;flex-shrink:0}.wage-import-content{border:1px solid var(--border-default);border-radius:var(--radius-sm);min-width:0;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);flex:1}.wage-import-warn-hint{margin:0 0 var(--space-6)}.wage-import-row-calc{gap:var(--space-5) var(--space-7);background:var(--bg-panel);border:1px solid var(--border-default);font-size:var(--text-sm);color:var(--color-text-muted);border-top:0;border-radius:0 0 6px 6px;flex-wrap:wrap;align-items:baseline;margin-top:-10px;padding:6px 12px 8px 50px;display:flex}.wage-import-calc-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em}.wage-import-calc-zero{color:var(--color-danger);font-weight:var(--weight-semibold)}.wage-import-calc-muted{color:var(--color-text-faint)}.wage-import-calc-total{font-weight:var(--weight-bold);color:var(--color-text);font-variant-numeric:tabular-nums;margin-left:auto}.wage-deadline-badge{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;letter-spacing:-.2px;white-space:nowrap;cursor:help;border:1px solid #0000;display:inline-flex}.wage-deadline-badge.ok{background:color-mix(in srgb, var(--color-text) 5%, transparent);color:var(--color-text-muted);border-color:var(--border-default)}.wage-deadline-badge.warn{background:var(--bg-warning);color:var(--color-warning);border-color:color-mix(in srgb, var(--color-warning) 30%, transparent)}.wage-deadline-badge.danger{background:var(--bg-danger);color:var(--color-danger);border-color:color-mix(in srgb, var(--color-danger) 35%, transparent)}@media (width<=1024px){.wage-allview-table{font-size:var(--text-xs)}.wage-allview-table th,.wage-allview-table td{padding:var(--space-2) var(--space-3)}.wage-allview-table .wage-content{min-width:120px}.wage-allview-name-cell{padding:8px!important}}@media (width<=640px){.wage-allview-name-cell{z-index:1;background:var(--bg-panel);box-shadow:1px 0 0 var(--border-default);position:sticky;left:0}.wage-allview-tools{flex-direction:column;align-items:stretch}.wage-allview-tool-actions{margin-left:0}.wage-filter-divider{display:none}}.wage-rates-deadline{margin-bottom:var(--space-7)}.wage-rates-deadline label{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:inline-flex}.wage-rates-deadline input{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-base);font-variant-numeric:tabular-nums;text-align:center;width:70px}.wage-rates-add{gap:var(--space-4);margin-bottom:var(--space-6);align-items:center;display:inline-flex}.wage-rates-add input{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-3) var(--space-5);font-size:var(--text-base);width:120px}.wage-rates-table-wrap{border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow-x:auto}.wage-rates-table td,.wage-rates-table th{vertical-align:middle;padding:var(--space-5) var(--space-6)}.wage-rates-year-head{align-items:center;gap:var(--space-3);justify-content:flex-end;display:inline-flex}.wage-rates-field-label{gap:var(--space-1);flex-direction:column;display:flex}.wage-rates-field-label strong{color:var(--color-text);font-size:var(--text-base)}.wage-rates-field-hint{color:var(--color-text-faint);font-size:var(--text-xs)}.wage-rates-input{text-align:right;border:1px solid var(--border-default);border-radius:var(--radius-md);width:100%;max-width:140px;padding:var(--space-3) var(--space-4);font-size:var(--text-base);font-variant-numeric:tabular-nums}.wage-rates-input:focus{outline:var(--focus-ring);outline-offset:-1px;border-color:var(--focus-ring-color)}.wage-rates-preview{text-align:right;font-size:var(--text-xs);color:var(--color-text-faint);margin-top:var(--space-1);font-variant-numeric:tabular-nums}.wage-rates-footer{margin-top:var(--space-7);gap:var(--space-4);display:flex}.shift-matrix{height:100%;padding:14px 18px max(14px, env(safe-area-inset-bottom)) 18px;gap:var(--space-5);flex-direction:column;display:flex;overflow:hidden auto}.shift-matrix>*,.sangam-shift>*{flex-shrink:0}.shift-matrix-toolbar{align-items:center;gap:var(--space-7);flex-wrap:wrap;display:flex}.shift-matrix-nav{align-items:center;gap:var(--space-3);display:inline-flex}.shift-matrix-nav-title{font-size:var(--text-md);font-weight:var(--weight-bold);text-align:center;min-width:110px;color:var(--color-text)}.shift-matrix-today-summary{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);margin-left:var(--space-3);font-size:var(--text-sm);color:var(--color-text);background:var(--bg-panel);border-radius:var(--radius-md);white-space:nowrap;text-overflow:ellipsis;max-width:60ch;display:inline-flex;overflow:hidden}@media (width<=640px){.shift-matrix-today-summary{font-size:var(--text-xs);max-width:100%;margin-left:0;margin-top:var(--space-2);flex-basis:100%}}.shift-matrix-actions{gap:var(--space-4);margin-left:auto;display:inline-flex}.shift-matrix-loading{gap:var(--space-4);color:var(--color-text-muted);justify-content:center;align-items:center;padding:40px;display:flex}@media (width>=641px) and (width<=1024px){.shift-matrix-toolbar{gap:var(--space-5);row-gap:var(--space-3)}.shift-matrix-actions{margin-left:auto}.shift-matrix-nav-title{min-width:90px;font-size:var(--text-sm)}}.shift-matrix-context-bar{gap:var(--space-2);padding:var(--space-5) var(--space-7);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-text);font-variant-numeric:tabular-nums;background:linear-gradient(135deg,#f0f9ff 0%,#fff 60%);border:1px solid #bae6fd;flex-direction:column;display:flex}.shift-matrix-context-row{align-items:center;gap:var(--space-5);flex-wrap:wrap;display:flex}.shift-matrix-context-today-label{font-weight:var(--weight-bold);color:#075985;letter-spacing:-.01em}.shift-matrix-context-section{min-width:var(--space-24);background:var(--bg-app);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-bold);color:#0369a1;text-align:center;border:1px solid #bae6fd;padding:1px 8px;display:inline-block}.shift-matrix-context-today-shifts,.shift-matrix-context-counts,.shift-matrix-context-next{align-items:center;gap:var(--space-4);color:var(--color-text-muted);flex-wrap:wrap;display:inline-flex}.shift-matrix-context-today-shifts strong,.shift-matrix-context-counts strong,.shift-matrix-context-next strong{color:var(--color-text);font-weight:var(--weight-bold)}.shift-matrix-context-today-shifts strong.is-me{color:#b45309;border-radius:var(--radius-sm);background:#fef3c7;padding:0 6px}.shift-matrix-context-sep{color:var(--color-text-faint)}.shift-matrix-context-other-month{color:var(--color-text-faint);font-style:italic}.shift-matrix-context-next em{margin-left:var(--space-2);border-radius:var(--radius-sm);font-style:normal;font-size:var(--text-2xs);font-weight:var(--weight-bold);padding:0 6px;display:inline-block}.shift-matrix-context-next em.badge-today{background:var(--bg-danger);color:var(--red-600)}.shift-matrix-context-next em.badge-soon{color:#b45309;background:#fef3c7}.shift-matrix-context-next em.day-away{color:#075985;background:#e0f2fe}@media (width<=640px){.shift-matrix-context-bar{padding:var(--space-5);font-size:var(--text-sm)}.shift-matrix-context-row{align-items:stretch;gap:var(--space-3);flex-direction:column}.shift-matrix-context-section{min-width:0;padding:var(--space-1) var(--space-5);font-size:var(--text-xs);align-self:flex-start}.shift-matrix-context-today-shifts,.shift-matrix-context-counts,.shift-matrix-context-next{gap:var(--space-3);flex-wrap:wrap;display:flex}.shift-matrix-context-today-shifts>span,.shift-matrix-context-counts>span,.shift-matrix-context-next>span{background:var(--bg-app);border-radius:var(--radius-md);padding:var(--space-2) var(--space-5);align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);border:1px solid #e0f2fe;display:inline-flex}.shift-matrix-context-sep{display:none}}.shift-matrix-scroll{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:linear-gradient(90deg,#0000 0 calc(100% - 32px),#0f172a0f 100%) 100% 0/32px 100% no-repeat;background:var(--bg-app);flex:none;min-height:0;overflow:auto visible}.shift-matrix-filter-bar{align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:2px 0;display:flex}.shift-matrix-filter-label{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-semibold);margin-right:var(--space-1)}.shift-matrix-filter-chip{padding:var(--space-1) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-pill);background:var(--bg-app);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;white-space:nowrap}.shift-matrix-filter-chip:hover,.shift-matrix-filter-chip:focus-visible{background:var(--bg-panel)}.shift-matrix-filter-chip.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent);font-weight:var(--weight-semibold)}.shift-matrix-cell.dimmed{opacity:.2;filter:saturate(.3)}.shift-matrix-cell.dimmed:hover,.shift-matrix-cell.dimmed:focus-visible{opacity:.5}.shift-matrix-table{border-collapse:collapse;font-size:var(--text-sm);table-layout:fixed;width:100%;min-width:1100px}@media (width>=641px) and (width<=1024px){.shift-matrix-table{min-width:auto;font-size:var(--text-xs)}.shift-matrix-name-col,.shift-matrix-name-cell{min-width:64px;max-width:72px;padding:6px!important}.shift-matrix-date-col{min-width:var(--space-14);padding:4px 2px!important}}@media (width<=640px) and (hover:none) and (pointer:coarse){.shift-matrix-cell{min-width:38px;height:44px}.shift-matrix-name-col,.shift-matrix-name-cell{padding:8px!important}}.shift-matrix-table th,.shift-matrix-table td{border:1px solid var(--border-default);padding:0}.shift-matrix-name-col{z-index:5;background:var(--bg-panel);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-align:center;min-width:80px;max-width:80px;box-shadow:var(--shadow-sm);position:sticky;top:0;left:0;border-right:2px solid var(--border-strong)!important;padding:10px!important}.shift-matrix-date-col{z-index:4;background:var(--bg-panel);color:var(--color-text-muted);text-align:center;min-width:34px;position:sticky;top:0;padding:6px 4px!important}.shift-matrix-date-col.sun{color:var(--color-danger);font-weight:var(--weight-bold)}.shift-matrix-date-col.sat{color:var(--color-accent);font-weight:var(--weight-bold)}.shift-matrix-date-col.sun .shift-matrix-date-dow:after{content:"●";margin-left:var(--space-1);vertical-align:1px;font-size:.9em}.shift-matrix-date-col.sat .shift-matrix-date-dow:after{content:"◇";margin-left:var(--space-1);font-size:1em}.shift-matrix-date-col.today{background:var(--bg-hover);border-bottom:2px solid #2e7df6!important}.shift-matrix-date-num{font-size:var(--text-base);font-weight:var(--weight-bold)}.shift-matrix-date-dow{font-size:var(--text-3xs);opacity:.7}.shift-matrix-name-cell{background:var(--bg-panel);color:var(--color-text);font-weight:var(--weight-semibold);font-size:var(--text-base);text-align:center;z-index:2;position:sticky;left:0;box-shadow:2px 0 4px -2px #0f172a14;border-right:2px solid var(--border-strong)!important;padding:10px 12px!important}.shift-matrix-table tr.is-me-row .shift-matrix-name-cell{color:#075985;font-weight:var(--weight-extrabold);box-shadow:inset 3px 0 0 var(--color-accent);background:#e0f2fe}.shift-matrix-table tr.is-me-row>.shift-matrix-cell,.shift-matrix-table tr.is-me-row>.shift-matrix-name-cell{border-top:1.5px solid #60a5fa;border-bottom:1.5px solid #60a5fa}.shift-matrix-cell{text-align:center;vertical-align:middle;min-width:34px;height:34px;color:var(--color-text);transition:background var(--t-fast);position:relative}.shift-matrix-cell.day-sun{background:#fef2f2}.shift-matrix-cell.day-sat{background:var(--bg-hover)}.shift-matrix-cell.editable{cursor:pointer}.shift-matrix-cell.editable:hover,.shift-matrix-cell.editable:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset-inset)}.shift-matrix-cell.picking{outline:2px solid var(--amber-500);outline-offset:-2px}.shift-matrix-cell-pill{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-4);border-radius:var(--radius-sm);font-weight:var(--weight-bold);font-size:var(--text-xs);line-height:var(--leading-tight);min-width:var(--space-14);white-space:nowrap;display:inline-flex}.st-regular{color:var(--color-text-faint);background:0 0}.st-dutyA{background:var(--st-dutyA-bg);color:var(--st-dutyA-fg);font-weight:var(--weight-bold)}.st-dutyB{background:var(--st-dutyB-bg);color:var(--st-dutyB-fg);font-weight:var(--weight-bold)}.st-splitA{background:var(--st-splitA-bg);color:var(--st-splitA-fg)}.st-splitB{background:var(--st-splitB-bg);color:var(--st-splitB-fg);font-weight:var(--weight-bold)}.st-jeongpa{background:var(--st-jeongpa-bg);color:var(--st-jeongpa-fg);font-weight:var(--weight-bold)}.st-sangam-jogun{background:var(--st-sangam-jogun-bg);color:var(--st-sangam-jogun-fg)}.st-sangam-ilgun{background:var(--st-sangam-ilgun-bg);color:var(--st-sangam-ilgun-fg)}.st-sangam-nokhwa{background:var(--st-sangam-nokhwa-bg);color:var(--st-sangam-nokhwa-fg)}.st-leave{background:var(--st-leave-bg);color:var(--st-leave-fg)}.st-halfAm{background:var(--st-splitA-bg);color:var(--st-splitA-fg);background-image:repeating-linear-gradient(45deg,#0000,#0000 3px,#00000014 3px 6px)}.st-halfPm{background:var(--st-splitA-bg);color:var(--st-splitA-fg);background-image:repeating-linear-gradient(-45deg,#0000,#0000 3px,#00000014 3px 6px)}.st-bereavement{background:var(--st-bereavement-bg);color:var(--st-bereavement-fg)}.st-training{background:var(--st-training-bg);color:var(--st-training-fg)}.st-trip{background:var(--st-trip-bg);color:var(--st-trip-fg)}.st-o2{background:var(--st-o2-bg);color:var(--st-o2-fg)}.st-compOff{background:var(--st-compOff-bg);color:var(--st-compOff-fg)}.st-o2Late{background:var(--st-o2-bg);color:var(--st-o2-fg)}.st-o2Early{background:var(--st-compOff-bg);color:var(--st-compOff-fg);background-image:linear-gradient(135deg, var(--st-o2-bg) 50%, var(--st-compOff-bg) 50%)}.st-custom{color:var(--color-text)}.shift-matrix-cell.day-sun:not([class*=st-]){background:var(--day-sun-bg)}.shift-matrix-cell.day-sat:not([class*=st-]){background:var(--day-sat-bg)}.shift-site-badge{padding:0 var(--space-2);border-radius:var(--radius-xs);font-size:var(--text-2xs);font-weight:var(--weight-semibold);white-space:nowrap;line-height:1.5;display:inline-block}.shift-site-badge-common{background:var(--color-surface-sunken,#e5e7eb);color:var(--color-text-muted)}.shift-site-badge-gwanghwamun{color:#1e40af;background:#dbeafe}.shift-site-badge-sangam{color:#166534;background:#dcfce7}.admin-settings-table tr.shift-site-row td{padding:var(--space-2) var(--space-3) var(--space-1);background:var(--color-surface-subtle,transparent);border-top:1px solid var(--color-border)}.shift-matrix-empty{text-align:center;color:var(--color-text-faint);padding:40px!important}.shift-matrix-picker{z-index:var(--z-dropdown);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--space-6);width:280px;max-height:calc(100dvh - 40px);position:fixed;overflow-y:auto}@supports not (height:100dvh){.shift-matrix-picker{max-height:calc(100vh - 40px)}}.shift-matrix-picker-head{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text-muted);margin-bottom:var(--space-4)}.shift-matrix-picker-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(80px,1fr));display:grid}.shift-matrix-pick-chip{justify-content:center;align-items:center;gap:var(--space-1);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4) var(--space-2);font-size:var(--text-xs);cursor:pointer;flex-direction:column;display:flex}.shift-matrix-pick-chip:hover,.shift-matrix-pick-chip:focus-visible{border-color:var(--color-accent)}.shift-matrix-pick-code{font-weight:var(--weight-bold);font-size:var(--text-base);color:var(--color-text)}.shift-matrix-pick-label{font-size:var(--text-2xs);color:var(--color-text-muted);word-break:keep-all;overflow-wrap:break-word;text-align:center;line-height:var(--leading-tight)}.shift-matrix-pick-more{align-items:center;gap:var(--space-2);width:100%;margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border:1px dashed var(--border-default);border-radius:var(--radius-md);font-size:var(--text-2xs);color:var(--color-text-muted);cursor:pointer;background:0 0;display:flex}.shift-matrix-pick-more:hover,.shift-matrix-pick-more:focus-visible{border-color:var(--color-accent);color:var(--color-text)}.shift-matrix-legend strong{font-size:var(--text-xs);color:var(--color-text-muted);margin-right:var(--space-2)}.shift-matrix-legend-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);border-radius:var(--radius-xl);font-size:var(--text-2xs);display:inline-flex}.shift-matrix-legend-code{font-weight:var(--weight-bold)}.wage-import-shift-tag{font-size:var(--text-2xs);border-radius:var(--radius-xl);background:var(--st-o2-bg);color:var(--st-o2-fg);font-weight:var(--weight-bold);padding:1.5px 6px}.shift-matrix-o2-bar{gap:var(--space-4);padding:var(--space-4) var(--space-6);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:center;display:flex}.shift-matrix-o2-title{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--weight-bold)}.shift-matrix-o2-chip{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5);font-size:var(--text-xs);background:var(--bg-app);border:1px solid var(--border-default);border-radius:14px;display:inline-flex}.shift-matrix-o2-chip.used{background:var(--st-o2-bg);border-color:var(--violet-300);color:var(--st-o2-fg)}.shift-matrix-o2-chip.unused{color:var(--color-text-faint)}.shift-matrix-o2-chip.conflict{background:var(--bg-danger);border-color:var(--red-300);color:var(--red-600)}.shift-matrix-o2-name{font-weight:var(--weight-semibold)}.shift-matrix-o2-status{font-size:var(--text-2xs);opacity:.85}.daily-backup-actions{gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.wage-report-section{margin-top:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-app)}.wage-report-head{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-default);font-size:var(--text-base);flex-wrap:wrap;display:flex}.wage-report-hint{color:var(--color-text-muted);font-size:var(--text-xs)}.wage-report-preview{padding:var(--space-3);background:var(--bg-app);overflow-x:auto}@media (width<=640px){.modal-content{border-radius:var(--radius-lg) 8px 0 0;max-height:90dvh;margin:0}.modal-overlay{padding:0 0 env(safe-area-inset-bottom) 0;align-items:flex-end}.wage-page{padding:var(--space-5) var(--space-6);gap:var(--space-5)}.wage-toolbar{gap:var(--space-4)}.wage-actions{justify-content:space-between;width:100%}.wage-actions .btn{font-size:var(--text-sm);padding:var(--space-3) var(--space-4)}.wage-nav-title{font-size:var(--text-md);min-width:90px}.wage-table{font-size:var(--text-sm)}.wage-table th,.wage-table td{padding:var(--space-3) var(--space-3)}.wage-table .wage-content{min-width:120px;font-size:var(--text-xs)}.wage-table th:first-child,.wage-table td:first-child{background:var(--bg-app);z-index:2;min-width:var(--space-24);position:sticky;left:0}.wage-table th:nth-child(2),.wage-table td:nth-child(2){background:var(--bg-app);z-index:2;min-width:56px;position:sticky;left:48px;box-shadow:2px 0 4px -2px #0f172a14}.wage-table thead th:first-child,.wage-table thead th:nth-child(2){background:var(--bg-panel);z-index:3}.wage-field-row{gap:var(--space-4);grid-template-columns:1fr}.wage-import-modal{width:100%}.wage-import-row{gap:var(--space-2) var(--space-4);grid-template-rows:auto auto auto;grid-template-columns:32px 1fr}.wage-import-date{grid-area:1/2}.wage-import-time{grid-area:2/2;width:80px}.wage-import-time:nth-of-type(2){justify-self:end}.wage-import-dash{display:none}.wage-import-content{grid-area:3/2}.wage-import-check{grid-area:1/1/span 3;align-self:center}.calendar-page-body{-webkit-overflow-scrolling:touch;overflow:hidden auto}.calendar-page-body>*{flex:none;min-height:auto}.cal-wrapper,.agenda-view,.cal-stats-view,.wage-page{height:auto;min-height:auto;overflow:visible}.cal-sidebar{min-height:auto;overflow:visible}.cal-main,.cal-grid{flex:none;min-height:auto;overflow:visible}.shift-matrix{padding:var(--space-5) var(--space-4);gap:var(--space-4);flex:none;height:auto;overflow:visible}.shift-matrix-scroll{flex:none;min-height:auto;max-height:none}.shift-matrix-date-col{position:static}.shift-matrix-toolbar{gap:var(--space-4)}.shift-matrix-nav-title{font-size:var(--text-md);min-width:90px}.shift-matrix-actions{width:100%}.shift-matrix-o2-bar{padding:var(--space-3) var(--space-4);font-size:var(--text-xs)}.shift-matrix-o2-chip{padding:var(--space-1) var(--space-4);font-size:var(--text-xs)}.shift-matrix-name-col{min-width:70px;max-width:70px;font-size:var(--text-xs)}.shift-matrix-name-cell{font-size:var(--text-sm);padding:8px!important}.shift-matrix-date-col{min-width:var(--space-14);max-width:var(--space-14);padding:4px 2px!important}.shift-matrix-date-num{font-size:var(--text-sm)}.shift-matrix-date-dow{font-size:var(--text-3xs)}.shift-matrix-cell{min-width:var(--space-14);max-width:var(--space-14);height:var(--space-15);font-size:var(--text-2xs)}.shift-matrix-picker{padding:var(--space-6)}.shift-matrix-picker-grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr)}.shift-matrix-pick-chip{padding:var(--space-6) var(--space-3);min-height:52px}.shift-matrix-pick-code{font-size:var(--text-md)}.shift-matrix-pick-label{font-size:var(--text-xs)}.shift-matrix-memo-textarea{font-size:var(--text-md);padding:var(--input-pad-y-md) var(--input-pad-x-md);min-height:60px}.shift-matrix-legend{font-size:var(--text-2xs)}.shift-matrix-legend-chip{padding:var(--space-1) var(--space-3);font-size:var(--text-3xs)}.wage-rates-table{font-size:var(--text-sm)}.wage-rates-input{max-width:100px;font-size:var(--text-sm)}.wage-rates-field-label strong{font-size:var(--text-sm)}.wage-rates-field-hint{font-size:var(--text-2xs)}.shift-matrix-name-col,.shift-matrix-name-cell{min-width:56px;max-width:56px;font-size:var(--text-xs)}.shift-matrix-date-col,.shift-matrix-cell{min-width:24px;max-width:24px}.shift-matrix-cell{height:var(--space-14);font-size:var(--text-3xs)}.wage-table-wrap{font-size:var(--text-xs)}.wage-table .wage-memo,.wage-table th:last-child,.wage-table td:last-child{display:none}}.shift-matrix-rotations{background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);flex:none}.shift-matrix-rotations-summary{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);cursor:pointer;font-size:var(--text-sm);color:var(--color-text-muted);flex-wrap:wrap;list-style:none;display:flex}.shift-matrix-rotations-summary::-webkit-details-marker{display:none}.shift-matrix-rotations.is-open>.shift-matrix-rotations-summary{cursor:default;border-bottom:1px solid var(--color-border-subtle)}.shift-matrix-rotations-summary-title{font-weight:var(--weight-bold);color:#075985}.shift-matrix-rotations-summary-month{font-size:var(--text-xs);color:var(--color-text-muted)}.shift-matrix-rotations-summary-sep{color:#cbd5e1}.shift-matrix-rotations-summary-line{color:var(--color-text)}@media (width<=640px){.shift-matrix-rotations-summary-line,.shift-matrix-rotations-summary-sep{display:none}}.shift-matrix-rotations-body{gap:var(--space-7);padding:var(--space-2) var(--space-7) var(--space-7);border-top:1px solid var(--border-default);flex-direction:column;display:flex}.shift-matrix-rotations-note{font-size:var(--text-xs);color:var(--color-text-muted);border-top:1px dashed var(--border-default);margin-top:var(--space-1);padding:4px 2px 0}.shift-matrix-rotation-row{align-items:center;gap:var(--space-5);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.shift-matrix-rotation-row strong{color:var(--color-text-muted);font-size:var(--text-sm);flex-shrink:0;min-width:52px}.shift-matrix-rotation-chain{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.shift-matrix-rotation-step{align-items:center;gap:var(--space-2);background:var(--bg-app);padding:var(--space-1) var(--space-5);border-radius:var(--radius-2xl);border:1px solid var(--border-default);color:var(--color-text-muted);display:inline-flex}.shift-matrix-rotation-step.done{background:var(--bg-success);color:#065f46;font-weight:var(--weight-semibold);border-color:#6ee7b7}.shift-matrix-rotation-num{color:var(--color-text-on-accent);width:var(--space-8);height:var(--space-8);border-radius:var(--radius-full);font-size:var(--text-3xs);font-weight:var(--weight-bold);background:#cbd5e1;justify-content:center;align-items:center;display:inline-flex}.shift-matrix-rotation-step.done .shift-matrix-rotation-num{background:#10b981}.shift-matrix-rotation-name{white-space:nowrap}.shift-matrix-rotation-mult{font-size:var(--text-3xs);color:#0f766e;font-weight:var(--weight-bold);border-radius:var(--radius-lg);background:#ccfbf1;padding:0 5px}.shift-matrix-rotation-arrow{color:var(--color-text-faint);font-size:var(--text-3xs);margin-left:var(--space-2)}.shift-matrix-legend{align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;padding:6px 0;display:flex}.shift-matrix-legend-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);border-radius:var(--radius-xl);font-size:var(--text-2xs);cursor:help;display:inline-flex}.shift-matrix-legend-name{font-weight:var(--weight-medium)}.shift-matrix-legend-time{font-size:var(--text-3xs);opacity:.7;margin-left:var(--space-1);font-variant-numeric:tabular-nums}.shift-matrix-o2-picker{z-index:var(--z-dropdown);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--space-7);width:300px;max-height:400px;position:fixed;overflow-y:auto}.shift-matrix-o2-picker-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin:6px 0 10px}.shift-matrix-o2-picker-current{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--st-o2-bg);border-radius:var(--radius-md);margin-bottom:var(--space-5);font-size:var(--text-sm);color:var(--st-o2-fg);display:flex}.shift-matrix-o2-clear{background:var(--bg-app);color:#6d28d9;padding:var(--space-1) var(--space-5);border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;border:1px solid #c4b5fd;margin-left:auto}.shift-matrix-o2-clear:hover,.shift-matrix-o2-clear:focus-visible{background:#ede9fe}.shift-matrix-o2-date-grid{gap:var(--space-2);grid-template-columns:repeat(5,1fr);display:grid}.shift-matrix-o2-date{background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-1);text-align:center}.shift-matrix-o2-date.has-o2{background:var(--st-o2-bg);border-color:var(--violet-400)}.shift-matrix-o2-date.sun .shift-matrix-o2-date-num{color:var(--color-danger)}.shift-matrix-o2-date.sat .shift-matrix-o2-date-num{color:var(--color-accent)}.shift-matrix-o2-date-num{font-weight:var(--weight-bold);font-size:var(--text-xs);margin-bottom:var(--space-1);color:var(--color-text)}.shift-matrix-o2-date-btns{gap:var(--space-1);justify-content:center;display:flex}.shift-matrix-o2-date-btn{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xs);width:var(--space-10);height:var(--space-10);font-size:var(--text-xs);cursor:pointer;color:#6366f1;font-weight:var(--weight-bold);justify-content:center;align-items:center;display:inline-flex}.shift-matrix-o2-date-btn:hover,.shift-matrix-o2-date-btn:focus-visible{background:var(--st-o2-bg);border-color:var(--violet-500)}.shift-matrix-o2-chip{cursor:pointer;transition:transform var(--t-fast), background var(--t-fast)}.shift-matrix-o2-chip:hover:not(:disabled),.shift-matrix-o2-chip:focus-visible:not(:disabled){background:color-mix(in srgb, currentColor 8%, transparent);transform:translateY(var(--lift-y))}.shift-matrix-o2-chip:disabled{cursor:not-allowed;opacity:.7}.cal-duty-bar[data-shifttype=dutyA]{background:color-mix(in srgb, var(--ev-color) 22%, transparent)}.cal-duty-bar[data-shifttype=dutyB]{background:color-mix(in srgb, var(--ev-color) 12%, transparent)}.cal-duty-bar[data-shifttype=splitA]{background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--ev-color) 14%, transparent) 0, color-mix(in srgb, var(--ev-color) 14%, transparent) 5px, color-mix(in srgb, var(--ev-color) 28%, transparent) 5px, color-mix(in srgb, var(--ev-color) 28%, transparent) 10px)}.cal-duty-bar[data-shifttype=splitB]{background:repeating-linear-gradient(-45deg, color-mix(in srgb, var(--ev-color) 14%, transparent) 0, color-mix(in srgb, var(--ev-color) 14%, transparent) 5px, color-mix(in srgb, var(--ev-color) 28%, transparent) 5px, color-mix(in srgb, var(--ev-color) 28%, transparent) 10px)}.cal-duty-bar[data-shifttype=jeongpa]{background:color-mix(in srgb, var(--st-jeongpa-bg) 22%, transparent)}.cal-shift-picker{gap:var(--space-3);flex-wrap:wrap;display:flex}.cal-shift-chip{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);font-size:var(--text-sm);cursor:pointer;color:var(--color-text-muted);display:inline-flex}.cal-shift-chip.active{background:var(--bg-hover);border-color:var(--color-accent);color:#1e40af;font-weight:var(--weight-semibold)}.cal-shift-code{font-weight:var(--weight-bold);font-size:var(--text-sm)}.cal-shift-label{font-size:var(--text-sm)}.cal-shift-time{font-size:var(--text-2xs);opacity:.7;font-variant-numeric:tabular-nums}.cal-duty-bar-split{gap:0;overflow:hidden;border-left:none!important;padding:0!important;display:flex!important}.cal-duty-split-half{align-items:center;gap:var(--space-1);min-width:0;padding:var(--space-1) var(--space-2);font-size:var(--text-2xs);font-weight:var(--weight-semibold);flex:1 1 0;display:inline-flex;overflow:hidden}.cal-duty-split-name{text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-width:0;overflow:hidden}.cal-event.is-ongoing,.cal-duty-bar.is-ongoing{box-shadow:0 0 0 2px color-mix(in srgb, var(--ev-color,var(--color-accent)) 45%, transparent), var(--shadow-xs)}@media (prefers-reduced-motion:no-preference){.cal-event.is-ongoing,.cal-duty-bar.is-ongoing{animation:2.4s ease-in-out infinite cal-ongoing-pulse}@keyframes cal-ongoing-pulse{0%,to{box-shadow:0 0 0 2px color-mix(in srgb, var(--ev-color,var(--color-accent)) 45%, transparent), var(--shadow-xs)}50%{box-shadow:0 0 0 3px color-mix(in srgb, var(--ev-color,var(--color-accent)) 70%, transparent), var(--shadow-sm)}}}.cal-duty-split-half.a{background:color-mix(in srgb, var(--st-splitA-bg) 30%, transparent);border-left:3px solid var(--st-splitB-bg);color:#7c2d12}.cal-duty-split-half.b{background:color-mix(in srgb, var(--st-splitB-bg) 30%, transparent);color:var(--color-text-on-accent);background-image:linear-gradient(to right, #ea580c, var(--st-splitB-bg));border-left:1px dashed #fff}.cal-duty-split-tag{color:#7c2d12;border-radius:var(--radius-xs);min-width:13px;height:13px;font-size:var(--text-3xs);font-weight:var(--weight-extrabold);background:#ffffffb3;flex-shrink:0;justify-content:center;align-items:center;padding:0 3px;display:inline-flex}.cal-duty-split-half.b .cal-duty-split-tag{color:#9a3412;background:#ffffffd9}.cal-duty-bar.cal-duty-bar-split:hover,.cal-duty-bar.cal-duty-bar-split:focus-visible{background:0 0}.cal-duty-bar.cal-duty-bar-split:hover .cal-duty-split-half,.cal-duty-bar.cal-duty-bar-split:focus-visible .cal-duty-split-half{filter:brightness(1.08)}.cal-duty-bar.cal-duty-bar-split:active .cal-duty-split-half{filter:brightness(.95)}.cal-cell.cal-cell-holiday:not(.today):not(.other){background:var(--cal-cell-holiday-bg)}.cal-cell.cal-cell-holiday .cal-holiday-name{font-weight:var(--weight-semibold);font-size:var(--text-2xs);background:var(--cal-holiday-chip-bg);color:var(--cal-holiday-chip-text);border-radius:var(--radius-pill);letter-spacing:-.01em;margin-top:1px;padding:1px 6px}.shift-matrix-legend-groups{gap:var(--space-3);padding:var(--space-4) var(--space-6);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);flex-direction:column;display:flex}.shift-matrix-legend-group{align-items:center;gap:var(--space-5);display:flex}.shift-matrix-legend-group-title{font-size:var(--text-xs);color:var(--color-text-muted);min-width:var(--space-20);flex-shrink:0}.shift-matrix-legend-group-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.shift-matrix-leave-badge{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5);background:var(--amber-100);border:1px solid var(--amber-200);cursor:pointer;font-size:var(--text-sm);color:var(--amber-900);border-radius:14px;display:inline-flex}.shift-matrix-leave-badge:hover,.shift-matrix-leave-badge:focus-visible{background:var(--amber-200)}.shift-matrix-leave-label{font-weight:var(--weight-semibold)}.shift-matrix-leave-count{font-variant-numeric:tabular-nums;font-weight:var(--weight-bold)}.shift-matrix-leave-count.unset{color:var(--amber-700);font-weight:var(--weight-medium);font-style:italic}.shift-leave-modal{width:380px;max-width:95vw}.shift-leave-hint{color:var(--color-text-muted);font-size:var(--text-sm);margin:0 0 12px}.shift-leave-input-row{align-items:center;gap:var(--space-4);display:flex}.shift-leave-input-row input{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);font-size:var(--text-md);font-variant-numeric:tabular-nums;flex:1}.shift-leave-used-row{margin-top:var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm)}.wage-yearly-badge{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-7);color:#1e3a8a;font-size:var(--text-sm);background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%);border:1px solid #93c5fd;border-radius:14px;display:inline-flex}.wage-yearly-label{font-weight:var(--weight-semibold)}.wage-yearly-amount{font-weight:var(--weight-extrabold);font-size:var(--text-md);font-variant-numeric:tabular-nums}.wage-yearly-count{opacity:.75;font-size:var(--text-xs)}.shift-matrix-cell{position:relative}.shift-matrix-memo-dot{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-full);box-shadow:0 0 0 1.5px var(--bg-app);background:#3b82f6;position:absolute;top:2px;right:2px}.shift-matrix-memo-section{margin-top:var(--space-5);padding-top:var(--space-5);gap:var(--space-3);border-top:1px solid #f1f5f9;flex-direction:column;display:flex}.shift-matrix-memo-label{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-semibold)}.shift-matrix-memo-hint{font-size:var(--text-2xs);color:var(--color-text-faint);font-weight:var(--weight-normal);margin-left:var(--space-1)}.shift-matrix-memo-textarea{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--input-pad-y-sm) var(--input-pad-x-sm);font-size:var(--text-sm);resize:vertical;font-family:inherit}.shift-matrix-memo-textarea:focus{outline:var(--focus-ring);outline-offset:-1px;border-color:var(--focus-ring-color)}.shift-matrix-time-section,.sangam-shift-time-section{margin-top:var(--space-5);padding-top:var(--space-5);gap:var(--space-3);border-top:1px solid #f1f5f9;flex-direction:column;display:flex}.shift-matrix-time-row,.sangam-shift-time-row{align-items:center;gap:var(--space-3);display:flex}.shift-matrix-time-input,.sangam-shift-time-input{box-sizing:border-box;border:1px solid var(--border-default);border-radius:var(--radius-md);min-width:0;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);text-align:center;font-variant-numeric:tabular-nums;background:var(--bg-app);color:var(--color-text);flex:1 1 0}.shift-matrix-time-input:focus-visible,.sangam-shift-time-input:focus-visible{outline:var(--focus-ring);outline-offset:-1px;border-color:var(--focus-ring-color)}.shift-matrix-time-dash,.sangam-shift-time-dash{color:var(--color-text-faint);font-weight:var(--weight-semibold)}.shift-matrix-time-mark{width:var(--space-6);height:var(--space-6);border-radius:var(--radius-full);color:var(--color-text);pointer-events:none;background:#ffffffeb;justify-content:center;align-items:center;line-height:0;display:inline-flex;position:absolute;top:1px;left:1px;box-shadow:0 0 0 .5px #0f172a26}@media (width<=640px){.shift-matrix-time-row,.sangam-shift-time-row{gap:var(--space-2)}.shift-matrix-time-input,.sangam-shift-time-input{padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}}.shift-matrix-group-picker{align-items:center;gap:var(--space-3);font-size:var(--text-sm);display:inline-flex}.shift-matrix-group-picker label{color:var(--color-text-muted);font-weight:var(--weight-semibold)}.shift-matrix-group-picker select{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);background:var(--bg-app)}.rotations-group{padding:var(--space-6);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);margin-bottom:var(--space-5)}.rotations-group-title{font-size:var(--text-base);color:var(--color-text);margin:0 0 10px}.rotations-list{align-items:flex-start;gap:var(--space-5);border-top:1px dashed var(--border-strong);padding:8px 0;display:flex}.rotations-list:first-of-type{border-top:none}.rotations-kind-label{min-width:70px;font-size:var(--text-sm);color:var(--color-text-muted);font-weight:var(--weight-bold);padding-top:var(--space-3)}.rotations-chain{gap:var(--space-2);flex-wrap:wrap;flex:1;margin:0;padding:0;list-style:none;display:flex}.rotations-step{align-items:center;gap:var(--space-2);background:var(--bg-app);border:1px solid var(--border-default);padding:var(--space-1) var(--space-4);font-size:var(--text-sm);border-radius:14px;display:inline-flex}.rotations-step-num{color:var(--color-text-on-accent);width:var(--space-8);height:var(--space-8);border-radius:var(--radius-full);font-size:var(--text-3xs);font-weight:var(--weight-bold);background:#fb923c;justify-content:center;align-items:center;display:inline-flex}.rotations-step-name{font-weight:var(--weight-semibold);color:var(--color-text)}.rotations-add-row{gap:var(--space-2);margin-left:var(--space-3);align-items:center;display:inline-flex}.rotations-add-row input{border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-size:var(--text-sm);width:100px}.rotations-add-group{gap:var(--space-3);margin:12px 0;display:flex}.rotations-add-group input{border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2) var(--space-5);font-size:var(--text-sm);width:200px}.rotations-footer{gap:var(--space-4);margin-top:var(--space-6);display:flex}.shift-matrix-cell.day-sun .shift-matrix-cell-pill.st-dutyB,.shift-matrix-cell.day-sat .shift-matrix-cell-pill.st-dutyB{color:var(--color-text-on-accent);font-weight:var(--weight-extrabold);box-shadow:inset 0 0 0 2px var(--red-600);background:#ef4444!important}.shift-matrix-cell.day-sun .shift-matrix-cell-pill.st-dutyA,.shift-matrix-cell.day-sat .shift-matrix-cell-pill.st-dutyA{color:var(--color-text-on-accent);font-weight:var(--weight-extrabold);background:#fb7185!important}.shift-matrix-cell.day-sun .shift-matrix-cell-pill.st-splitA,.shift-matrix-cell.day-sat .shift-matrix-cell-pill.st-splitA,.shift-matrix-cell.day-sun .shift-matrix-cell-pill.st-splitB,.shift-matrix-cell.day-sat .shift-matrix-cell-pill.st-splitB{font-weight:var(--weight-extrabold);box-shadow:inset 0 0 0 1px #00000026}@media print{@page shift-print{size:A4 landscape;margin:8mm}.shift-matrix,.sangam-shift{page:shift-print}.shift-matrix>:not(.shift-print-header):not(.shift-matrix-scroll),.sangam-shift>:not(.shift-print-header):not(.sangam-shift-scroll){display:none!important}.shift-print-header{width:100%;margin-bottom:var(--space-3);font-size:var(--text-sm);border-bottom:1px solid #94a3b8;padding:0 0 6px;display:block!important}.shift-print-header-title{font-size:var(--text-lg);font-weight:var(--weight-bold)}.shift-print-header-meta{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--text-3xs)}.shift-matrix-scroll,.sangam-shift-scroll{border:none;overflow:visible!important}.shift-matrix-table,.sangam-shift-table{width:100%;font-size:var(--text-3xs)}.shift-matrix-cell{height:var(--space-11)!important}.sangam-shift-cell{height:var(--space-11)!important;min-height:var(--space-11)!important}.shift-matrix-table thead,.sangam-shift-table thead{display:table-header-group}}.shift-print-header{display:none}.shift-matrix-myhistory{border-radius:var(--radius-xl);background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border:1px solid #bae6fd}.shift-matrix-myhistory-toggle{align-items:center;gap:var(--space-5);width:100%;padding:var(--space-5) var(--space-7);cursor:pointer;font-size:var(--text-sm);color:#075985;font-weight:var(--weight-semibold);background:0 0;border:none;display:flex}.shift-matrix-myhistory-toggle:hover,.shift-matrix-myhistory-toggle:focus-visible{background:#0ea5e90d}.shift-matrix-myhistory-summary{text-align:left;color:#0369a1;font-weight:var(--weight-medium);font-size:var(--text-sm);flex:1}.shift-matrix-myhistory-chevron{color:#0284c7;font-size:var(--text-md)}.shift-matrix-myhistory-grid{gap:var(--space-2);padding:var(--space-2) var(--space-7) var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}.shift-matrix-myhistory-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--bg-app);border-radius:var(--radius-md);font-size:var(--text-xs);border:1px solid #e0f2fe;display:inline-flex}.shift-matrix-myhistory-item.none{opacity:.5}.shift-matrix-myhistory-code{min-width:var(--space-14);font-size:var(--text-2xs);font-weight:var(--weight-bold);border-radius:var(--radius-sm);justify-content:center;align-items:center;padding:1px 5px;display:inline-flex}.shift-matrix-myhistory-label{color:var(--color-text-muted);font-size:var(--text-xs);flex:1}.shift-matrix-myhistory-count{color:#0369a1;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}@media (width<=640px){.shift-matrix-myhistory-grid{grid-template-columns:repeat(2,1fr)}}.shift-matrix-date-col.has-holiday{background:var(--bg-danger)}.shift-matrix-date-holiday{font-size:var(--text-3xs);font-weight:var(--weight-bold);color:var(--red-600);line-height:var(--leading-tight);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;padding:0 1px;overflow:hidden}.shift-matrix-holidays-row th{z-index:3;font-size:var(--text-3xs);font-weight:var(--weight-bold);text-align:center;height:var(--space-8);background:#fef2f2;border-bottom:1px solid #fecaca;position:sticky;top:36px;padding:1px 2px!important}.shift-matrix-holidays-label{position:sticky;top:36px;left:0;color:var(--red-600)!important;z-index:5!important;font-size:var(--text-3xs)!important;border-right:2px solid var(--border-strong)!important;background:#fef2f2!important;padding:1px 6px!important}.shift-matrix-holiday-cell{color:var(--red-600);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shift-matrix-holiday-cell.has{background:var(--bg-danger)}.shift-matrix-holiday-cell span{text-overflow:ellipsis;vertical-align:middle;max-width:100%;display:inline-block;overflow:hidden}@media (width<=640px){.shift-matrix-holiday-cell.has span{display:none}.shift-matrix-holiday-cell.has:after{content:attr(data-short);color:inherit;font-size:var(--text-2xs);font-weight:var(--weight-bold)}}.shift-matrix-scroll.is-range-dragging,.sangam-shift-scroll.is-range-dragging{-webkit-user-select:none;user-select:none}.shift-matrix-cell.range-selected,.sangam-shift-cell.range-selected{box-shadow:inset 0 0 0 2px var(--color-accent);background:color-mix(in srgb, var(--color-accent) 12%, transparent)}.bulk-bar{bottom:var(--space-4);z-index:20;align-items:center;gap:var(--space-3) var(--space-5);margin:var(--space-4) 0 var(--space-5);padding:var(--space-4) var(--space-6);background:var(--bg-app);border:1px solid var(--color-accent);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);flex-wrap:wrap;display:flex;position:sticky}.bulk-bar-count{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap}.bulk-bar-count strong{font-size:var(--text-base);color:var(--color-text);font-weight:var(--weight-bold)}.bulk-bar-sub{font-size:var(--text-2xs);color:var(--color-text-faint);margin-top:2px;display:block}.shift-range-mode-chip{align-items:center;gap:var(--space-1);margin-left:auto;display:inline-flex}.shift-range-mode-hint{align-items:center;gap:var(--space-3);margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-4);background:color-mix(in srgb, var(--color-accent) 8%, transparent);border:1px solid color-mix(in srgb, var(--color-accent) 30%, transparent);border-radius:var(--radius-md);font-size:var(--text-2xs);color:var(--color-text-muted);word-break:keep-all;display:flex}.shift-range-mode-off{padding:2px var(--space-3);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-2xs);color:var(--color-text);cursor:pointer;flex:none}.shift-range-mode-off:hover{border-color:var(--color-accent)}.shift-matrix-scroll.is-tap-mode,.sangam-shift-scroll.is-tap-mode{-webkit-user-select:none;user-select:none}.shift-matrix-scroll.is-tap-mode .shift-matrix-cell.editable,.sangam-shift-scroll.is-tap-mode .sangam-shift-cell.editable{cursor:cell}.bulk-bar-choices{gap:var(--space-2);flex-wrap:wrap;flex:1;min-width:0;display:flex}.bulk-bar-chip{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text);cursor:pointer;white-space:nowrap;display:inline-flex}.bulk-bar-chip:hover:not(:disabled){border-color:var(--color-accent);background:var(--bg-hover)}.bulk-bar-chip:focus-visible{outline:var(--focus-ring);outline-offset:2px}.bulk-bar-chip:disabled{opacity:.5;cursor:not-allowed}.bulk-bar-chip.is-erase{color:var(--color-text-muted)}.bulk-bar-pill{min-width:22px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:var(--weight-bold);justify-content:center;align-items:center;display:inline-flex}.bulk-bar-busy{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;display:inline-flex}.bulk-bar-close{padding:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;background:0 0}.bulk-bar-close:hover:not(:disabled){background:var(--bg-hover);color:var(--color-text)}@media print{.bulk-bar{display:none}}.shift-stats{gap:var(--space-5);margin-bottom:var(--space-5);flex-direction:column;display:flex}.shift-stats-card{padding:var(--space-5) var(--space-6);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:0}.shift-stats-head{align-items:baseline;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-4);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.shift-stats-head>svg{flex:none;align-self:center}.shift-stats-head>strong{font-size:var(--text-sm);color:var(--color-text)}.shift-stats-head-sub{font-size:var(--text-2xs);color:var(--color-text-faint);word-break:keep-all}.shift-stats-basis{margin:0 0 var(--space-4);font-size:var(--text-2xs);color:var(--color-text-muted);word-break:keep-all}.shift-stats-basis strong{color:var(--color-text);font-weight:var(--weight-semibold)}.shift-stats-mine{gap:var(--space-5);flex-direction:column;display:flex}@media (width>=900px){.shift-stats-mine{align-items:center;gap:var(--space-9);flex-direction:row}.shift-stats-mine-main{flex:none;min-width:150px}.shift-stats-mine-spark-wrap{flex:none}.shift-stats-mine-break{padding-left:var(--space-8);border-left:1px solid var(--border-default);flex:auto}}.shift-stats-mine-label{font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--color-text-muted);letter-spacing:.02em}.shift-stats-mine-value{align-items:baseline;gap:var(--space-1);margin-top:var(--space-1);font-size:clamp(2rem,5vw,2.8rem);font-weight:var(--weight-extrabold);color:var(--color-text);line-height:var(--leading-none);font-variant-numeric:tabular-nums;display:flex}.shift-stats-mine-value .unit{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-muted)}.shift-stats-mine-period{margin-top:var(--space-2);font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-faint)}.shift-stats-mine-note{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all}.shift-stats-mine-note strong{color:var(--color-text);font-weight:var(--weight-bold)}.shift-stats-mine-spark-wrap{gap:var(--space-2);flex-direction:column;display:flex}.shift-stats-mine-spark-title{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.shift-stats-mine-spark{align-items:flex-end;gap:var(--space-2);display:flex}.shift-stats-spark-col{flex-direction:column;align-items:center;gap:2px;width:24px;display:flex}.shift-stats-spark-col .num{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);font-variant-numeric:tabular-nums;min-height:.9em;line-height:1}.shift-stats-spark-col .bar{width:100%;height:var(--space-11);background:var(--bg-panel);border-radius:2px;align-items:flex-end;display:flex;overflow:hidden}.shift-stats-spark-col .bar>span{background:var(--sky-500);border-radius:2px;width:100%;min-height:2px;display:block}.shift-stats-spark-col .mon{font-size:var(--text-2xs);color:var(--color-text-faint);line-height:1}.shift-stats-mine-break{gap:var(--space-3) var(--space-7);flex-wrap:wrap;align-items:baseline;display:flex}.shift-stats-mine-kind{align-items:baseline;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;display:inline-flex}.shift-stats-mine-kind i{border-radius:2px;flex:none;align-self:center;width:8px;height:8px}.shift-stats-mine-kind strong{font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--color-text)}.shift-stats-mine-kind small{font-size:var(--text-2xs);color:var(--color-text-faint)}.shift-stats-mine-kind.is-leave{color:var(--color-text-faint)}.shift-stats-mine-none{font-size:var(--text-xs);color:var(--color-text-faint);font-style:italic}.shift-stats-foot{align-items:center;gap:var(--space-2);font-size:var(--text-2xs);color:var(--color-text-faint);flex-wrap:wrap;display:flex}.shift-stats-person{font:inherit;font-weight:var(--weight-semibold);color:var(--color-accent);cursor:pointer;background:0 0;border:0;padding:0}.shift-stats-person:hover{text-decoration:underline}.shift-stats-person:focus-visible{outline:var(--focus-ring);outline-offset:2px}.shift-matrix-plain-block{margin-bottom:var(--space-5);padding:var(--space-5) var(--space-6);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg)}.shift-matrix-plain-title{margin:0 0 var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text)}.ops-guide-block-head{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.ops-guide-block-head .shift-matrix-plain-title{margin:0}.ops-guide-stamp{font-size:var(--text-2xs);color:var(--color-text-faint)}.ops-guide-edit-btn{align-items:center;gap:var(--space-2);padding:2px var(--space-4);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);font:inherit;font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-accent);cursor:pointer;white-space:nowrap;margin-left:auto;display:inline-flex}.ops-guide-edit-btn:hover{border-color:var(--border-strong);background:var(--bg-hover)}.ops-guide-edit-btn:focus-visible{outline:var(--focus-ring);outline-offset:2px}.ops-guide-card-head{align-items:baseline;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.ops-guide-card-head>strong{font-size:var(--text-md)}.ops-guide-source{padding:0 var(--space-3);background:var(--bg-panel);border-radius:var(--radius-full,999px);font-size:var(--text-2xs);color:var(--color-text-faint);white-space:nowrap;margin-left:auto}.ops-guide-card-list{padding-left:var(--space-8);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-text-muted);word-break:keep-all;margin:0}.ops-guide-year{font-weight:var(--weight-normal);color:var(--color-text-muted)}.ops-guide-rule{margin-left:calc(var(--space-8) * -1);margin-top:var(--space-2);padding:2px var(--space-4);background:var(--bg-panel);border-left:2px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-2xs);color:var(--color-text-faint);list-style:none}.ops-guide-backdrop{z-index:var(--z-modal,1000);padding:var(--space-6);background:#0f172a73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ops-guide-modal{width:min(680px,100%);max-height:min(86vh,900px);padding:var(--space-7) var(--space-8) var(--space-6);background:var(--bg-app);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.ops-guide-modal-head{align-items:center;gap:var(--space-4);display:flex}.ops-guide-modal-head h2{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);flex:1;margin:0}.ops-guide-close{padding:var(--space-2);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;background:0 0;border:0}.ops-guide-close:hover{background:var(--bg-hover);color:var(--color-text)}.ops-guide-help{margin:var(--space-4) 0 var(--space-5);font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all;line-height:1.7}.ops-guide-help strong{color:var(--color-text);font-weight:var(--weight-semibold)}.ops-guide-list{gap:var(--space-4);min-height:0;padding-right:var(--space-2);flex-direction:column;flex:1;display:flex;overflow-y:auto}.ops-guide-item{padding:var(--space-4);background:var(--bg-panel);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg)}.ops-guide-item-head{gap:var(--space-3);align-items:center;display:flex}.ops-guide-title-input,.ops-guide-body-input{width:100%;padding:var(--space-3) var(--space-4);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);font:inherit;font-size:var(--text-sm);color:var(--color-text)}.ops-guide-title-input{font-weight:var(--weight-semibold)}.ops-guide-body-input{margin-top:var(--space-3);line-height:var(--leading-relaxed);resize:vertical}.ops-guide-title-input:focus-visible,.ops-guide-body-input:focus-visible{outline:var(--focus-ring);outline-offset:1px}.ops-guide-del{padding:var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;background:0 0;flex:none}.ops-guide-del:hover{background:var(--bg-danger);color:var(--color-danger);border-color:#fca5a5}.ops-guide-actions{align-items:center;gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border-subtle);flex-wrap:wrap;display:flex}.ops-guide-actions-grow{flex:1}@media (width<=640px){.ops-guide-backdrop{align-items:flex-end;padding:0}.ops-guide-modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:92vh}.ops-guide-edit-btn,.ops-guide-source{margin-left:0}}.shift-balance{padding:var(--space-4) var(--space-6) var(--space-5);background:var(--bg-header)}.shift-balance-head{align-items:baseline;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-4);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.shift-balance-head>svg{flex:none;align-self:center}.shift-balance-title{font-size:var(--text-sm);color:var(--color-text)}.shift-balance-sub{font-size:var(--text-2xs);color:var(--color-text-muted);word-break:keep-all}.shift-balance-pick{align-items:center;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap;display:flex}.shift-balance-pick-label{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);white-space:nowrap}.shift-balance-pick-sep{background:var(--border-default);width:1px;height:14px}.shift-balance-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.shift-balance-chip{padding:2px var(--space-4);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-full,999px);font:inherit;font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);cursor:pointer;white-space:nowrap}.shift-balance-chip:hover{border-color:var(--border-strong);color:var(--color-text)}.shift-balance-chip.on{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.shift-balance-chip:focus-visible{outline:var(--focus-ring);outline-offset:2px}.shift-balance-pick-actions{align-items:center;gap:var(--space-3);margin-left:auto;display:flex}.shift-balance-pick-state{font-size:var(--text-2xs);color:var(--color-text-faint);white-space:nowrap}.shift-balance-pick-state.dirty{color:var(--color-warning);font-weight:var(--weight-semibold)}.shift-balance-pick-btn{padding:2px var(--space-4);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);font:inherit;font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);cursor:pointer;white-space:nowrap}.shift-balance-pick-btn:hover{border-color:var(--border-strong);color:var(--color-text)}.shift-balance-pick-btn:focus-visible{outline:var(--focus-ring);outline-offset:2px}.shift-balance-pick-btn.is-primary{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.shift-balance-pick-btn:disabled{opacity:.45;cursor:not-allowed}.shift-balance-empty{padding:var(--space-6);text-align:center;font-size:var(--text-xs);color:var(--color-text-faint);font-style:italic}.shift-balance-list{gap:var(--space-3) var(--space-5);grid-template-columns:repeat(auto-fit,minmax(184px,1fr));margin:0;padding:0;list-style:none;display:grid}.shift-balance-item{align-items:center;gap:2px var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-app);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);grid-template-columns:14px minmax(0,1fr) auto;grid-template-areas:"rank name num"".track track"".month month";min-width:0;display:grid}.shift-balance-item.is-me{border-color:var(--border-strong)}.shift-balance-rank{font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--color-text-faint);font-variant-numeric:tabular-nums;grid-area:rank}.shift-balance-name{padding-left:var(--space-3);border-left:3px solid var(--member-color,var(--border-default));font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;grid-area:name;overflow:hidden}.shift-balance-item.is-me .shift-balance-name{font-weight:var(--weight-bold)}.shift-balance-num{align-items:baseline;gap:var(--space-2);font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:num;display:inline-flex}.shift-balance-num strong{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text)}.shift-balance-delta{font-size:var(--text-2xs);font-weight:var(--weight-semibold)}.shift-balance-item.tone-behind .shift-balance-delta{color:var(--color-success)}.shift-balance-item.tone-ahead .shift-balance-delta{color:var(--color-danger)}.shift-balance-item.tone-even .shift-balance-delta{color:var(--color-text-faint)}.shift-balance-track{height:5px;margin-top:var(--space-2);background:var(--color-border-subtle);border-radius:3px;grid-area:track;display:block;overflow:hidden}.shift-balance-fill{background:var(--color-text-muted);border-radius:3px;height:100%;display:block}.shift-balance-item.tone-behind .shift-balance-fill{background:var(--color-success)}.shift-balance-item.tone-ahead .shift-balance-fill{background:var(--color-danger)}.shift-balance-month{margin-top:var(--space-2);font-size:var(--text-2xs);color:var(--color-text-faint);font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:month}.shift-balance-month strong{color:var(--color-text-muted);font-weight:var(--weight-bold)}@media print{.shift-balance{display:none}}.shift-matrix-monthly{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6)}.shift-matrix-monthly-head{align-items:baseline;gap:var(--space-5);margin-bottom:var(--space-4);display:flex}.shift-matrix-monthly-head strong{font-size:var(--text-base);color:var(--color-text)}.shift-matrix-monthly-hint{font-size:var(--text-xs);color:var(--color-text-faint)}.shift-matrix-monthly-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.shift-matrix-monthly-table th{background:var(--bg-panel);padding:var(--space-3) var(--space-4);text-align:center;font-weight:var(--weight-semibold);color:var(--color-text-muted);border-bottom:1px solid var(--border-default);cursor:help}.shift-matrix-monthly-table td{padding:var(--space-3) var(--space-4);text-align:center;color:var(--color-text);font-variant-numeric:tabular-nums;border-bottom:1px solid #f1f5f9}.shift-matrix-monthly-table td.num{text-align:center}.shift-matrix-monthly-table tbody tr:hover,.shift-matrix-monthly-table tbody tr:focus-visible{background:var(--bg-panel)}.shift-matrix-monthly-table tbody tr.is-mine{background:var(--bg-hover)}.shift-matrix-monthly-table tbody tr.is-mine:hover,.shift-matrix-monthly-table tbody tr.is-mine:focus-visible{background:#dbeafe}.shift-matrix-monthly-mine{margin-left:var(--space-2);background:var(--color-accent);color:var(--color-text-on-accent);border-radius:var(--radius-lg);font-size:var(--text-3xs);font-weight:var(--weight-bold);padding:1px 5px;display:inline-block}.shift-matrix-monthly-wage{background:var(--amber-100);font-weight:var(--weight-bold);color:var(--amber-900)!important}.shift-matrix-monthly-table.v2{font-size:var(--text-base)}.shift-matrix-monthly-table.v2 th{background:var(--bg-panel);padding:var(--space-4) var(--space-5);font-weight:var(--weight-bold);color:var(--color-text-muted)}.shift-matrix-monthly-table.v2 td{padding:var(--space-3) var(--space-5)}.shift-matrix-monthly-table.v2 td.sub{color:var(--color-text-muted);font-size:var(--text-sm)}.shift-matrix-monthly-table.v2 .bar-cell{white-space:nowrap;position:relative}.shift-matrix-monthly-table.v2 .bar-val{text-align:center;min-width:24px;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--color-text);font-size:var(--text-base);display:inline-block}.shift-matrix-monthly-table.v2 .bar-track{width:80px;height:var(--space-4);background:var(--bg-header);border-radius:var(--radius-sm);vertical-align:middle;margin-left:var(--space-4);display:inline-block;overflow:hidden}.shift-matrix-monthly-table.v2 .bar-track.sub{width:var(--space-20)}.shift-matrix-monthly-table.v2 .bar-fill{height:100%;transition:width var(--t-slow);background:#f87171;display:block}.shift-matrix-monthly-table.v2 .bar-fill.leave{background:var(--amber-400)}.shift-matrix-monthly-table.v2 .bar-cell.bar-high .bar-fill{background:var(--color-danger)}.shift-matrix-monthly-table.v2 .bar-cell.bar-high .bar-val{color:var(--red-600)}.shift-matrix-monthly-table.v2 .bar-cell.bar-low .bar-fill{background:#93c5fd}.shift-matrix-monthly-table.v2 .bar-cell.bar-low .bar-val{color:#1d4ed8}.shift-matrix-monthly-table.v2 th.th-hero{color:var(--color-text);background:var(--bg-danger)}.shift-matrix-monthly-table.v2 .bar-cell.hero{background:color-mix(in srgb, var(--bg-danger) 45%, transparent)}.shift-matrix-monthly-table.v2 .bar-cell.hero .bar-val{font-size:var(--text-lg);min-width:30px}.shift-matrix-monthly-table.v2 .bar-cell.hero .bar-track{height:var(--space-5)}.shift-matrix-monthly-table.v2 td.sub.faint{color:var(--color-text-faint)}@media (width<=1024px){.shift-matrix-monthly{-webkit-overflow-scrolling:touch;overflow-x:auto}.shift-matrix-monthly-table{width:auto;min-width:max-content}.shift-matrix-monthly-table th,.shift-matrix-monthly-table td{white-space:nowrap}.shift-matrix-monthly-table.v2 .bar-track{width:60px}.shift-matrix-monthly-table.v2 .bar-track.sub{width:var(--space-16)}.shift-matrix{padding:var(--space-6) var(--space-7)}.shift-matrix-toolbar{gap:var(--space-4)}.shift-matrix-actions{gap:var(--space-3);flex-wrap:wrap;margin-left:0}.shift-matrix-leave-badge,.shift-matrix-leave-label,.shift-matrix-leave-count,.shift-matrix-nav-title,.shift-matrix-group-picker label,.shift-matrix-group-picker select{white-space:nowrap}.shift-matrix-nav-title{min-width:90px;font-size:var(--text-md)}}.shift-matrix-monthly-head .mk-high{background:var(--color-danger);color:var(--color-text-on-accent);border-radius:var(--radius-lg);font-size:var(--text-3xs);font-weight:var(--weight-bold);margin-left:var(--space-2);padding:1px 6px;display:inline-block}.shift-matrix-monthly-head .mk-low{color:#1e40af;border-radius:var(--radius-lg);font-size:var(--text-3xs);font-weight:var(--weight-bold);margin-left:var(--space-2);background:#93c5fd;padding:1px 6px;display:inline-block}.notice-widget{flex-direction:column;height:100%;display:flex}.notice-widget-list{overscroll-behavior:contain;gap:var(--space-1);flex-direction:column;flex:1;min-height:0;margin:0;padding:4px 0 0;list-style:none;display:flex;overflow-y:auto}@media (width<=640px){.notice-widget-list{overscroll-behavior:auto;overflow-y:visible}}.notice-widget-item{padding:var(--space-5) var(--space-5);border-radius:var(--radius-md);border:1px solid var(--border-default);border-left:3px solid var(--border-default);background:var(--bg-panel);box-shadow:var(--shadow-xs);transition:background var(--t-base), border-color var(--t-base), box-shadow var(--t-base);gap:var(--space-2);flex-direction:column;display:flex}.notice-widget-item[data-site=gwanghwamun]{border-left-color:var(--color-accent)}.notice-widget-item[data-site=sangam]{border-left-color:var(--color-success)}.notice-widget-item:hover{border-color:var(--accent-200);box-shadow:var(--shadow-sm)}.notice-widget-item.unread .notice-widget-title strong{font-weight:var(--weight-bold)}.notice-widget-title{align-items:center;gap:var(--space-3);min-width:0;display:flex}.notice-widget-title strong{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.notice-widget-preview{font-size:var(--text-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.notice-widget-meta{align-items:center;gap:var(--space-2);font-size:var(--text-2xs);color:var(--color-text-faint);display:flex}.notice-attach-chip{color:var(--color-text-muted);align-items:center;gap:2px;display:inline-flex}.notice-modal-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal);padding:var(--space-12);justify-content:center;align-items:center;animation:.18s ease-out modal-overlay-fade-in;display:flex;position:fixed;inset:0}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.notice-modal-backdrop{-webkit-backdrop-filter:blur(var(--modal-blur));backdrop-filter:blur(var(--modal-blur))}}.notice-modal{background:var(--bg-app);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);width:min(720px,100%);max-height:var(--modal-max-h);flex-direction:column;animation:.24s cubic-bezier(.16,1,.3,1) modal-content-rise-in;display:flex;overflow:hidden}@media (prefers-reduced-motion:reduce){.notice-modal-backdrop,.notice-modal{animation:none}}.notice-modal-head{padding:var(--space-8) var(--space-10);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.notice-modal-head h2{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);align-items:center;gap:var(--space-4);margin:0;display:flex}.notice-modal-close{cursor:pointer;padding:var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);background:0 0;border:none;display:flex}.notice-modal-close:hover,.notice-modal-close:focus-visible{background:var(--bg-header);color:var(--color-text)}.notice-modal-body{padding:var(--space-8) var(--space-10) var(--space-10);flex:1;overflow-y:auto}.doc-preview-modal-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal);padding:var(--space-12);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.doc-preview-modal{background:var(--bg-app);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);width:min(1000px,95vw);max-height:var(--modal-max-h);flex-direction:column;display:flex;overflow:hidden}.doc-preview-modal-head{padding:var(--space-7) var(--space-10);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;gap:var(--space-6);display:flex}.doc-preview-modal-head h2{font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--color-text);align-items:center;gap:var(--space-4);flex:1;min-width:0;margin:0;display:flex}.doc-preview-modal-title-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.doc-preview-modal-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.doc-preview-modal-action-btn{border:1px solid var(--border-default);cursor:pointer;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);color:var(--color-text-muted);align-items:center;gap:var(--space-2);font-size:var(--text-xs);background:0 0;display:inline-flex}.doc-preview-modal-action-btn:hover,.doc-preview-modal-action-btn:focus-visible{background:var(--bg-hover);color:var(--color-text);border-color:var(--border-strong)}.doc-preview-modal-action-label{font-weight:var(--weight-semibold)}.doc-preview-modal-close{cursor:pointer;padding:var(--space-3);border-radius:var(--radius-md);color:var(--color-text-muted);background:0 0;border:none;display:flex}.doc-preview-modal-close:hover,.doc-preview-modal-close:focus-visible{background:var(--bg-hover);color:var(--color-text)}.doc-preview-modal-meta{gap:var(--space-5);padding:var(--space-4) var(--space-10);font-size:var(--text-xs);color:var(--color-text-muted);background:var(--bg-row-alt);border-bottom:1px solid var(--border-default);display:flex}.doc-preview-modal-body{flex-direction:column;flex:1;min-height:400px;display:flex;overflow:hidden}.doc-preview-modal-body>*{flex:1;min-height:0}.doc-preview-modal-loading{padding:var(--space-12);font-size:var(--text-sm);color:var(--color-text-muted);text-align:center}.doc-preview-modal-unsupported{padding:var(--space-16);font-size:var(--text-sm);color:var(--color-text-muted);text-align:center;align-items:center;gap:var(--space-6);flex-direction:column;display:flex}@media (width<=640px){.doc-preview-modal-backdrop{padding:0}.doc-preview-modal{border-radius:0;width:100%;max-height:100dvh}.doc-preview-modal-head{padding:var(--space-6) var(--space-7)}.doc-preview-modal-meta{padding:var(--space-3) var(--space-7)}.doc-preview-modal-action-label{display:none}}.memo-todo-widget{flex-direction:column;height:100%;display:flex}.memo-todo-local-badge{align-items:center;gap:var(--space-1);margin-left:var(--space-4);border-radius:var(--radius-xl);background:var(--amber-100);color:var(--amber-800);font-size:var(--text-3xs);font-weight:var(--weight-semibold);letter-spacing:.02em;cursor:help;padding:1px 6px;display:inline-flex}.memo-todo-body{gap:var(--space-4);flex-direction:column;flex:1;min-height:0;display:flex}.memo-todo-memo{resize:vertical;border:1px solid var(--border-default);border-radius:var(--radius-md);width:100%;padding:var(--space-4) var(--space-5);font-size:var(--text-sm);background:var(--amber-50);min-height:56px;color:var(--color-text);font-family:inherit}.memo-todo-memo:focus{outline:2px solid var(--amber-300);border-color:var(--amber-300)}.memo-todo-add{gap:var(--space-3);display:flex}.memo-todo-add input{border:1px solid var(--border-default);background:var(--bg-app);color:var(--color-text);border-radius:var(--radius-md);padding:var(--input-pad-y-sm) var(--input-pad-x-md);font-size:var(--text-sm);flex:1}.memo-todo-add button{background:var(--color-accent);color:var(--color-text-on-accent);border-radius:var(--radius-md);cursor:pointer;border:none;align-items:center;padding:0 10px;display:flex}.memo-todo-add button:disabled{background:var(--border-strong);cursor:not-allowed}.memo-todo-list{gap:var(--space-1);flex-direction:column;flex:1;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.memo-todo-item{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-2);border-bottom:1px dashed var(--border-default);display:flex}.memo-todo-item.done .memo-todo-text{color:var(--color-text-faint);text-decoration:line-through}.memo-todo-check{width:var(--space-9);height:var(--space-9);border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-app);cursor:pointer;color:var(--color-success);justify-content:center;align-items:center;padding:0;display:flex}.memo-todo-item.done .memo-todo-check{background:var(--color-success);border-color:var(--color-success);color:var(--color-text-on-accent)}.memo-todo-check-empty{width:var(--space-4);height:var(--space-4);display:block}.memo-todo-text{font-size:var(--text-sm);color:var(--color-text);flex:1}.memo-todo-remove{cursor:pointer;color:var(--border-strong);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;display:flex}.memo-todo-remove:hover{color:var(--color-danger);background:var(--bg-danger)}.memo-todo-empty{padding:var(--space-6);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.memo-todo-sync{font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);letter-spacing:-.01em;-webkit-user-select:none;user-select:none;align-items:center;display:inline-flex}.memo-todo-sync.sync-idle{display:none}.memo-todo-sync.sync-saving{color:var(--color-text-muted);background:var(--bg-row-alt)}.memo-todo-sync.sync-saved{color:var(--color-success);background:var(--bg-success)}.memo-todo-sync.sync-error{color:var(--color-danger);background:var(--bg-danger)}.memo-todo-memos{gap:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-default);margin-bottom:var(--space-2);flex-direction:column;display:flex}.memo-todo-memos-head{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.memo-todo-memos-title{align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);display:inline-flex}.memo-todo-tool{align-items:center;gap:var(--space-1);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-1) var(--space-4);font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;transition:background var(--t-base), border-color var(--t-base), color var(--t-base);background:0 0;display:inline-flex}.memo-todo-tool:hover{background:var(--bg-row-alt);border-color:var(--border-strong);color:var(--color-text)}.memo-todo-tool[aria-pressed=true]{background:var(--bg-info);border-color:var(--color-accent);color:var(--color-accent)}.memo-todo-memos-list{gap:var(--space-3);flex-direction:column;max-height:260px;display:flex;overflow-y:auto}.memo-todo-memo-card{gap:var(--space-3);border:1px solid var(--amber-200);border-radius:var(--radius-md);padding:var(--space-3);transition:border-color var(--t-base), box-shadow var(--t-base);background:#fefce8;align-items:stretch;display:flex}.memo-todo-memo-card.pinned{border-color:var(--amber-500);background:var(--amber-100)}.memo-todo-memo-card:focus-within{border-color:var(--amber-300);box-shadow:0 0 0 2px color-mix(in srgb, var(--amber-300) 25%, transparent)}.memo-todo-memo-text{min-width:0;padding:var(--space-1) var(--space-2);font-family:inherit;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text);resize:none;background:0 0;border:none;outline:none;flex:1;overflow:hidden}.memo-todo-memo-text::placeholder{color:var(--color-text-faint)}.memo-todo-memo-actions{gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex}.memo-todo-icon-btn{width:var(--space-11);height:var(--space-11);border-radius:var(--radius-sm);color:var(--color-text-faint);cursor:pointer;transition:background var(--t-base), color var(--t-base), border-color var(--t-base);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.memo-todo-icon-btn:hover,.memo-todo-icon-btn:focus-visible{background:var(--bg-row-alt);color:var(--color-text-muted);border-color:var(--border-default)}.memo-todo-icon-btn.active{color:var(--amber-700);background:var(--amber-100);border-color:var(--amber-300)}.memo-todo-icon-btn.memo-todo-remove:hover{color:var(--color-danger);background:var(--bg-danger);border-color:var(--border-default)}.memo-todo-due-input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.memo-todo-due{border-radius:var(--radius-pill);color:#075985;font-size:var(--text-2xs);font-weight:var(--weight-semibold);background:#e0f2fe;align-items:center;padding:0 6px;display:inline-flex}.memo-todo-due.overdue{background:var(--bg-danger);color:var(--color-danger)}.memo-todo-due.due-today{background:var(--amber-100);color:var(--amber-700)}.memo-todo-meta{align-items:center;gap:var(--space-1);flex-shrink:0;display:inline-flex}.memo-todo-drag-handle{color:#cbd5e1;cursor:grab;flex-shrink:0;align-items:center;display:inline-flex}.memo-todo-drag-handle:active{cursor:grabbing}.memo-todo-text-input{padding:var(--space-1) var(--space-2);font-family:inherit;font-size:var(--text-sm);color:var(--color-text);background:0 0;border:none;outline:none;width:100%;min-width:0}.memo-todo-text-input:focus{background:var(--bg-panel);border-radius:var(--radius-sm)}.memo-todo-text-input[readonly]{cursor:default}.recent-history-widget{flex-direction:column;height:100%;display:flex}.recent-history-list{gap:var(--space-1);flex-direction:column;flex:1;min-height:0;margin:0;padding:4px 0 0;list-style:none;display:flex;overflow-y:auto}.recent-history-item{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);cursor:pointer;transition:background var(--t-base), border-color var(--t-base);border:1px solid #0000;display:flex}.recent-history-item:hover{background:var(--bg-hover-neutral);border-color:var(--border-default)}.recent-history-kind{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-xl);font-size:var(--text-3xs);font-weight:var(--weight-semibold);background:var(--bg-header);color:var(--color-text-muted);flex-shrink:0;display:inline-flex}.recent-history-kind.kind-daily-report{color:#1e40af;background:#dbeafe}.recent-history-kind.kind-equipment{color:#166534;background:#dcfce7}.recent-history-kind.kind-document{background:var(--amber-100);color:var(--amber-800)}.recent-history-kind.kind-notice{background:var(--bg-danger);color:var(--color-danger)}.recent-history-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex;overflow:hidden}.recent-history-info strong{font-size:var(--text-sm);color:var(--color-text);font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-history-meta{font-size:var(--text-2xs);color:var(--color-text-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-history-time{font-size:var(--text-2xs);color:var(--color-text-faint);flex-shrink:0}.my-month-widget{flex-direction:column;height:100%;display:flex}.my-month-grid{gap:var(--space-5);flex:1;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));padding:6px 0;display:grid}.my-month-card{border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-6) var(--space-7);gap:var(--space-2);background:linear-gradient(135deg,#f8fafc 0%,#eff6ff 100%);flex-direction:column;display:flex;position:relative;overflow:hidden}.my-month-icon{color:var(--color-accent);opacity:.5;position:absolute;top:10px;right:12px}.my-month-num{font-size:var(--text-display);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-none)}.my-month-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted)}.my-month-sub{font-size:var(--text-2xs);color:var(--color-text-faint)}.my-month-foot{padding-top:var(--space-3);color:var(--color-text-faint);font-size:var(--text-2xs);border-top:1px dashed #f1f5f9}.my-month-index-warn{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);margin-top:var(--space-2);background:var(--amber-50);border:1px solid var(--amber-200);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--amber-800);display:flex}.my-month-index-warn>svg{color:var(--color-warning);flex-shrink:0}.my-month-index-warn>span{flex:1}.my-month-retry-btn{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-4);font-size:var(--text-2xs);border:1px solid var(--amber-200);background:var(--bg-app);border-radius:var(--radius-sm);color:var(--amber-800);cursor:pointer;display:inline-flex}.my-month-retry-btn:hover,.my-month-retry-btn:focus-visible{background:var(--amber-100)}.notice-modal-body .notice-compose-content,.notice-modal-body .notice-edit-form textarea{min-height:32vh;max-height:60vh;font-size:var(--text-md);line-height:var(--leading-normal)}.notice-modal-body .notice-compose-title{font-size:var(--text-md);padding:var(--space-4) var(--space-6)}.maintenance-widget{flex-direction:column;height:100%;min-height:0;display:flex}.maintenance-widget-tabs{gap:var(--space-1);background:var(--bg-header);border-radius:var(--radius-md);padding:var(--space-1);display:flex}.maintenance-widget-tab{align-items:center;gap:var(--space-2);color:var(--color-text-muted);padding:var(--space-2) var(--space-5);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs);font-weight:var(--weight-medium);transition:background var(--t-base), color var(--t-base);background:0 0;border:none;display:flex}.maintenance-widget-tab:hover,.maintenance-widget-tab:focus-visible{color:var(--color-text)}@media (width<=640px){.maintenance-widget-tab{min-height:var(--space-15)}}.maintenance-widget-tab.active{background:var(--bg-app);color:var(--color-accent);box-shadow:var(--shadow-xs)}.maintenance-widget-tab-label{white-space:nowrap}.maintenance-widget-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}@media (width<=640px){.maintenance-widget-tab-label{display:none}}.home-edit-bar-new{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);background:linear-gradient(135deg, var(--amber-300) 0%, var(--amber-500) 100%);color:var(--amber-900);border-radius:var(--radius-2xl);font-size:var(--text-sm);font-weight:var(--weight-bold);margin-left:var(--space-4);animation:2.4s ease-in-out infinite home-edit-bar-new-pulse;display:inline-flex}@keyframes home-edit-bar-new-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--amber-500) 40%, transparent);transform:scale(1)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--amber-500) 0%, transparent);transform:scale(1.04)}}.dr-card-item.dr-card-flash{animation:2.2s ease-out dr-card-flash-anim}@keyframes dr-card-flash-anim{0%,to{box-shadow:none;background:0 0}10%,60%{background:#2e7df612;box-shadow:0 0 0 3px #2e7df673}}.server-status{gap:var(--space-8);flex-direction:column;display:flex}.server-status-head{justify-content:space-between;align-items:center;display:flex}.server-status-title{font-size:var(--text-lg);color:#f1f5f9;align-items:center;gap:var(--space-4);margin:0;display:flex}.server-status-meta{align-items:center;gap:var(--space-5);display:flex}.server-status-updated{font-size:var(--text-sm);color:var(--color-text-muted)}.server-status-refresh-btn{border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);color:var(--color-text-faint);cursor:pointer;align-items:center;gap:var(--space-2);font-size:var(--text-base);background:#334155;border:none;display:flex}.server-status-refresh-btn:disabled{cursor:wait;opacity:.7}.server-status-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.server-status-card{border-radius:var(--radius-xl);padding:var(--space-8) var(--space-10);gap:var(--space-4);background:#1e293b;flex-direction:column;display:flex}.server-status-label{font-size:var(--text-sm);color:var(--color-text-faint);align-items:center;gap:var(--space-3);display:flex}.server-status-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:#f1f5f9}.server-status-small{font-size:var(--text-base);color:#cbd5e1}.server-status-info-grid{gap:var(--space-2) var(--space-12);font-size:var(--text-base);color:#cbd5e1;grid-template-columns:1fr 1fr;display:grid}.server-status-reparse-row{justify-content:space-between;align-items:center;display:flex}.server-status-reparse-btn{border-radius:var(--radius-md);padding:var(--space-3) var(--space-7);color:var(--color-text-on-accent);font-size:var(--text-base);align-items:center;gap:var(--space-3);border:none;display:flex}.server-status-reparse-hint{font-size:var(--text-sm);color:var(--color-text-faint)}.server-status-paths-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.server-status-path-item{align-items:center;gap:var(--space-3);font-size:var(--text-base);color:#cbd5e1;display:flex}.server-status-error{padding:var(--space-10);color:var(--color-danger)}.server-status-loading{padding:var(--space-10);opacity:.6}.person-year-overlay{z-index:var(--z-modal);padding:var(--space-5);background:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.person-year-shell{max-height:90vh}.person-year-head{justify-content:space-between;align-items:center;display:flex}.person-year-title{align-items:baseline;gap:var(--space-4);font-size:var(--text-md);margin:0;display:flex}.person-year-name{font-weight:var(--weight-bold);border-left:3px solid var(--member-color,var(--color-accent));padding-left:var(--space-3)}.person-year-sub{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-medium)}.person-year-body{overflow-y:auto}.person-year-summary{gap:var(--space-6) var(--space-9);padding-bottom:var(--space-5);margin-bottom:var(--space-5);border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap;display:flex}.person-year-summary-item{flex-direction:column;gap:2px;display:flex}.person-year-summary-label{font-size:var(--text-2xs);color:var(--color-text-muted)}.person-year-summary-value{font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text);font-variant-numeric:tabular-nums}.person-year-summary-unit{font-size:var(--text-sm);font-weight:var(--weight-medium);margin-left:1px}.person-year-summary-note{font-size:var(--text-xs);color:var(--color-text-muted)}.person-year-summary-last{font-size:var(--text-xs);color:var(--color-text);font-weight:var(--weight-medium)}.person-year-chips{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.person-year-chip{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);font-size:var(--text-xs);display:inline-flex}.person-year-chip.none{opacity:.45}.person-year-chip-code{min-width:22px;font-size:var(--text-2xs);font-weight:var(--weight-bold);border-radius:var(--radius-sm);justify-content:center;align-items:center;padding:1px 5px;display:inline-flex}.person-year-chip-label{color:var(--color-text-muted)}.person-year-chip-label em{font-style:normal;font-size:var(--text-2xs);opacity:.7}.person-year-chip-value{font-weight:var(--weight-bold);color:var(--color-text);font-variant-numeric:tabular-nums}.person-year-chip-value small{font-weight:var(--weight-normal);color:var(--color-text-muted);margin-left:2px}.person-year-extras{gap:var(--space-4);margin-bottom:var(--space-6);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.person-year-heatmap{gap:var(--space-5);margin-top:var(--space-3);grid-template-columns:repeat(4,1fr);display:grid}.person-year-month-label{font-size:var(--text-2xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin-bottom:var(--space-2)}.person-year-month-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.person-year-dow{text-align:center;color:var(--color-text-faint);font-size:9px;line-height:1.4}.person-year-dow.sun{color:var(--red-500)}.person-year-dow.sat{color:var(--sky-500)}.person-year-day{aspect-ratio:1;color:var(--color-text-faint);font-variant-numeric:tabular-nums;border-radius:2px;justify-content:center;align-items:center;font-size:8px;line-height:1;display:flex;overflow:hidden}.person-year-day:not(.work):not(.blank):not(.holiday-empty){background:var(--color-surface-sunken)}.person-year-day.blank{background:0 0}.person-year-day.holiday-empty{background:var(--bg-danger)}.person-year-day.work{font-weight:var(--weight-bold)}.person-year-foot{margin-top:var(--space-5);font-size:var(--text-2xs);color:var(--color-text-faint)}@media (width<=640px){.person-year-heatmap{grid-template-columns:repeat(2,1fr)}.person-year-day{font-size:9px}}.shift-matrix-name-btn{cursor:pointer;width:100%;font:inherit;color:inherit;font-weight:inherit;letter-spacing:inherit;border-radius:var(--radius-sm);text-underline-offset:2px;background:0 0;border:none;padding:6px 2px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:block}.shift-matrix-name-btn:hover,.shift-matrix-name-btn:focus-visible{background:var(--color-surface-hover);outline:none;text-decoration-color:currentColor}.cal-stats-v2-ranking-name-btn{cursor:pointer;font:inherit;text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;margin:-2px -4px;padding:2px 4px}.cal-stats-v2-ranking-name-btn:hover,.cal-stats-v2-ranking-name-btn:focus-visible{background:var(--color-surface-hover);outline:none;text-decoration:underline}.file-browser{background:var(--bg-app);height:100%;color:var(--color-text);max-width:var(--page-max-wide);box-sizing:border-box;flex-direction:column;width:100%;margin-inline:auto;display:flex;position:relative}.file-browser.drag-over{outline:2px dashed var(--focus-ring-color);outline-offset:-8px}.file-browser-dropzone{z-index:10;justify-content:center;align-items:center;gap:var(--space-5);color:var(--color-accent);font-size:var(--text-md);pointer-events:none;background:#2563eb14;flex-direction:column;display:flex;position:absolute;inset:0}.file-browser-dropzone p{font-size:var(--text-lg);font-weight:var(--weight-semibold);margin:0}.file-browser-dropzone span{font-size:var(--text-sm);opacity:.8}.file-browser-header{align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-8);border-bottom:1px solid var(--border-default);flex-wrap:wrap;display:flex}.file-browser-crumbs{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-base);flex-wrap:wrap;flex:1;display:flex}.file-browser-crumb{align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--text-base);background:0 0;border:none;display:inline-flex}.file-browser-crumb:hover{background:var(--bg-panel)}.file-browser-sep{color:var(--color-text-muted)}.file-browser-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}@media (width<=640px){.file-browser-actions{width:100%}.file-browser-actions>*{flex:auto}.file-browser-actions .file-browser-btn{justify-content:center;min-height:44px}.file-browser-view-toggle{display:flex}.file-browser-view-toggle .file-browser-btn{flex:auto}}.file-browser-btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-app);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;display:inline-flex}.file-browser-btn:hover:not(:disabled),.file-browser-btn:focus-visible:not(:disabled){background:var(--bg-panel)}.file-browser-btn:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.file-browser-btn.primary{background:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent)}.file-browser-btn.primary:hover:not(:disabled){opacity:.9;background:var(--color-accent)}.file-browser-upload-bar{align-items:center;gap:var(--space-5);padding:var(--space-4) var(--space-8);background:var(--bg-panel);border-bottom:1px solid var(--border-default);font-size:var(--text-sm);display:flex}.file-browser-upload-progress{height:var(--space-3);background:var(--border-default);border-radius:var(--radius-xs);flex:1;overflow:hidden}.file-browser-upload-progress>div{background:var(--color-accent);height:100%;transition:width var(--t-slow)}.file-browser-cancel-btn{padding:var(--space-2) var(--space-4);font-size:var(--text-xs);flex-shrink:0}.file-browser-cancel-btn:hover:not(:disabled){background:var(--bg-danger);color:var(--red-600);border-color:var(--red-600)}.file-browser-error{padding:var(--space-5) var(--space-8);background:var(--bg-danger);color:var(--red-600);align-items:center;gap:var(--space-4);font-size:var(--text-base);display:flex}.file-browser-error button{cursor:pointer;color:var(--red-600);background:0 0;border:none;margin-left:auto}.file-browser-main{flex:1;min-height:0;display:flex;overflow:hidden}.file-browser-main>.file-browser-body{flex:1}.file-browser-body{flex:1;padding:0 16px 16px;overflow:auto}.file-browser-name-active{border-radius:var(--radius-md);background:#2563eb1a}.file-browser-name-active>span{color:var(--color-accent);font-weight:var(--weight-semibold)}.file-browser-preview{border-left:1px solid var(--border-default);background:var(--bg-app);flex-direction:column;flex:none;width:min(460px,45vw);min-height:0;display:flex}.file-browser-preview-head{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default);background:var(--bg-panel);display:flex}.file-browser-preview-head strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-base);color:var(--color-text);flex:1;overflow:hidden}.file-browser-preview-actions{gap:var(--space-1);display:flex}.file-browser-preview-actions button{padding:var(--space-2) var(--space-3);cursor:pointer;color:var(--color-text-muted);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;display:inline-flex}.file-browser-preview-actions button:hover{background:var(--bg-app);color:var(--color-text)}.file-browser-preview-actions button.close:hover{background:var(--bg-hover-danger);color:var(--red-600)}.file-browser-preview-body{background:var(--bg-panel);flex:1;justify-content:center;align-items:stretch;display:flex;overflow:auto}.file-browser-preview-img{object-fit:contain;max-width:100%;max-height:100%;margin:auto;display:block}.file-browser-preview-iframe,.file-browser-preview-media{background:#000;border:none;width:100%;height:100%}.file-browser-preview-audio{width:100%;padding:var(--space-8);margin:auto}.file-browser-preview-text{padding:var(--space-6) var(--space-8);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-sm);line-height:var(--leading-normal);white-space:pre-wrap;word-break:break-word;color:var(--color-text);background:var(--bg-app);flex:1;margin:0;overflow:auto}.file-browser-preview-loading,.file-browser-preview-error,.file-browser-preview-unsupported{justify-content:center;align-items:center;gap:var(--space-5);color:var(--color-text-muted);font-size:var(--text-base);text-align:center;flex-direction:column;margin:auto;padding:40px 20px;display:flex}.file-browser-preview-error{color:var(--red-600)}.file-browser-preview-foot{gap:var(--space-3);padding:var(--space-3) var(--space-6);border-top:1px solid var(--border-default);font-size:var(--text-xs);color:var(--color-text-muted);background:var(--bg-panel);display:flex}.file-browser-loading,.file-browser-empty{justify-content:center;align-items:center;gap:var(--space-4);color:var(--color-text-muted);font-size:var(--text-base);text-align:center;flex-direction:column;padding:60px 16px;display:flex}.file-browser-empty p{font-size:var(--text-md);font-weight:var(--weight-medium);margin:0}.file-browser-empty span{font-size:var(--text-sm);opacity:.8}.file-browser-table{border-collapse:collapse;width:100%;font-size:var(--text-base)}.file-browser-table thead th{text-align:left;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default);font-weight:var(--weight-medium);color:var(--color-text-muted);font-size:var(--text-sm);background:var(--bg-app);z-index:1;position:sticky;top:0}.file-browser-table tbody td{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-default)}.file-browser-table tbody tr:hover{background:var(--bg-panel)}.file-browser-name{align-items:center;gap:var(--space-4);cursor:pointer;color:inherit;font-size:inherit;text-align:left;background:0 0;border:none;max-width:100%;padding:0;display:inline-flex}.file-browser-name>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-browser-name:hover>span{color:var(--color-accent);text-decoration:underline}.file-browser-row-actions{gap:var(--space-1);opacity:.7;display:inline-flex}.file-browser-table tbody tr:hover .file-browser-row-actions{opacity:1}.file-browser-row-actions button{border-radius:var(--radius-sm);cursor:pointer;width:26px;height:26px;color:var(--color-text-muted);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.file-browser-row-actions button:hover{background:var(--bg-panel);color:var(--color-text)}.file-browser-row-actions button.danger:hover{background:var(--bg-hover-danger);color:var(--red-600)}@keyframes file-browser-highlight-pulse{0%{background:#facc1566}50%{background:#facc1540}to{background:0 0}}.file-browser-row-highlight td{animation:3s ease-out forwards file-browser-highlight-pulse}.file-browser-thumb{width:var(--space-14);height:var(--space-14);object-fit:cover;border-radius:var(--radius-xs);background:var(--bg-panel);flex-shrink:0}.file-browser-row-cut td{opacity:.5}.file-browser-row-cut .file-browser-name{font-style:italic}.file-browser-table tbody tr[draggable=true]{cursor:grab}.file-browser-table tbody tr[draggable=true]:active{cursor:grabbing}.file-browser-row-droptarget td{box-shadow:inset 0 0 0 2px var(--color-accent);background:#2563eb1f!important}.file-browser-row-droptarget .file-browser-name{color:var(--color-accent);font-weight:var(--weight-semibold)}.file-browser-drop-target{box-shadow:inset 0 0 0 2px var(--color-accent);background:#2563eb26!important}.file-browser-ctx{z-index:var(--z-modal-elevated);min-width:200px;padding:var(--space-2);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--text-base);flex-direction:column;gap:1px;display:flex;position:fixed}.file-browser-ctx button{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);text-align:left;cursor:pointer;color:var(--color-text);border-radius:var(--radius-sm);font-size:var(--text-base);background:0 0;border:none;display:flex}.file-browser-ctx button:hover{background:var(--bg-panel)}.file-browser-ctx button.danger{color:var(--red-600)}.file-browser-ctx button.danger:hover{background:var(--bg-hover-danger)}.file-browser-ctx-sep{background:var(--border-default);height:1px;margin:var(--space-2) var(--space-1)}.file-browser-clipboard-bar{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-8);background:var(--amber-100);border-bottom:1px solid var(--amber-200);color:var(--amber-800);font-size:var(--text-sm);display:flex}.file-browser-clipboard-bar strong{color:var(--amber-900)}.file-browser-clipboard-bar button{padding:var(--space-1) var(--space-2);cursor:pointer;color:var(--amber-800);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;margin-left:auto;display:inline-flex}.file-browser-clipboard-bar button:hover{background:var(--amber-200)}.file-browser-search{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-app);color:var(--color-text-muted);flex:0 280px;display:inline-flex}.file-browser-search input{font-size:var(--text-base);color:var(--color-text);background:0 0;border:none;outline:none;flex:1;min-width:0}.file-browser-search button{cursor:pointer;color:inherit;background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.file-browser-meta-cell{gap:var(--space-1);font-size:var(--text-xs);flex-direction:column;min-width:0;display:flex}.file-browser-tags{gap:var(--space-1);flex-wrap:wrap;display:flex}.file-browser-tag{border-radius:var(--radius-xl);color:#4338ca;cursor:pointer;font-size:var(--text-3xs);font-weight:var(--weight-medium);white-space:nowrap;background:#eef2ff;border:none;align-items:center;padding:1px 6px;display:inline-flex}.file-browser-tag:hover{background:#c7d2fe}.file-browser-memo-indicator{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);min-width:0;display:inline-flex}.file-browser-memo-preview{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.file-browser-filter-chips{gap:var(--space-3);padding:var(--space-3) var(--space-8);border-bottom:1px solid var(--border-default);background:var(--bg-panel);flex-wrap:wrap;align-items:center;display:flex}.file-browser-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-2xl);background:var(--bg-app);color:var(--color-text);font-size:var(--text-xs);cursor:pointer;line-height:var(--leading-snug);display:inline-flex}.file-browser-chip:hover{background:var(--bg-panel)}.file-browser-chip.active{background:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent)}.file-browser-chip-count{font-size:var(--text-2xs);opacity:.75;margin-left:1px}.file-browser-chip-sep{color:var(--color-text-muted);font-size:var(--text-xs);padding:0 2px}.file-browser-chip-clear{color:var(--color-text-muted);background:0 0;border-color:#0000;margin-left:auto}.file-browser-chip-clear:hover{background:var(--bg-panel);color:var(--color-text)}.file-browser-sort-select{padding-right:var(--space-4);cursor:pointer;font-family:inherit}.file-browser-view-toggle{gap:0;display:inline-flex}.file-browser-view-toggle .file-browser-btn{padding:var(--space-3) var(--space-4);border-radius:0}.file-browser-view-toggle .file-browser-btn:first-child{border-radius:var(--radius-sm) 0 0 5px}.file-browser-view-toggle .file-browser-btn:last-child{border-radius:0 5px 5px 0;margin-left:-1px}.file-browser-view-toggle .file-browser-btn.active{background:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent);z-index:1;position:relative}.file-browser-scopebar{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-8) var(--space-3);border-bottom:1px solid var(--border-default);flex-wrap:wrap;display:flex}.file-browser-scope-toggle{border:1px solid var(--border-default);border-radius:var(--radius-md);flex-shrink:0;gap:0;display:inline-flex;overflow:hidden}.file-browser-scope-btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--bg-app);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;border:0;font-weight:600;display:inline-flex}.file-browser-scope-btn+.file-browser-scope-btn{border-left:1px solid var(--border-default)}.file-browser-scope-btn:hover:not(.active){background:var(--bg-panel);color:var(--color-text)}.file-browser-scope-btn.active{background:var(--color-accent);color:var(--color-text-on-accent)}.file-browser-scope-desc{font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all}.file-browser-usage{align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);word-break:keep-all;margin-left:auto;display:inline-flex}.file-browser-usage-mine{color:var(--color-text);font-weight:600}.file-browser-usage-disk:before{content:"·";margin-right:var(--space-3);color:var(--color-text-faint)}.file-browser-usage-mine+.file-browser-usage-disk:before{content:"";margin:0}.file-browser-card-owner{font-size:var(--text-2xs);color:var(--color-text-faint);white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.file-browser-owner-tag{font-size:var(--text-2xs);color:var(--color-text-muted);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:0 var(--space-3);white-space:nowrap}@media (width<=640px){.file-browser-scopebar{padding:var(--space-3) var(--space-4);gap:var(--space-3)}.file-browser-scope-desc{order:3;width:100%}.file-browser-usage{margin-left:0}}.file-browser-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));padding:12px 0;display:grid}@media (width<=640px){.file-browser-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}}.file-browser-card{align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4) var(--space-4);border-radius:var(--radius-lg);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--t-fast), border-color var(--t-fast);background:0 0;border:1px solid #0000;flex-direction:column;min-width:0;display:flex;position:relative}.file-browser-card:hover{background:var(--bg-panel)}.file-browser-card-selected{background:#2563eb1f;border-color:#2563eb4d}.file-browser-card-active{background:#2563eb1a;border-color:#2563eb59}.file-browser-card-cut{opacity:.5;font-style:italic}.file-browser-card-droptarget{border-color:var(--color-accent);background:#2563eb2e;border-style:dashed}.file-browser-card-highlight{animation:1.6s ease-out 2 file-browser-card-flash}@keyframes file-browser-card-flash{0%,to{background-color:#0000}50%{background-color:#facc1559}}.file-browser-card-check{z-index:2;opacity:0;transition:opacity var(--t-fast);position:absolute;top:4px;left:4px}.file-browser-card:hover .file-browser-card-check,.file-browser-card-selected .file-browser-card-check,.file-browser-card-check:focus-visible{opacity:1}@media (hover:none){.file-browser-card-check{opacity:.7}}.file-browser-card-thumb{aspect-ratio:1;background:var(--bg-panel);border-radius:var(--radius-md);width:100%;color:var(--color-text-muted);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.file-browser-card-thumb img{object-fit:cover;width:100%;height:100%}.file-browser-card-thumb-fallback{color:var(--color-text-muted);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.file-browser-card-name{font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--color-text);text-align:center;-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;width:100%;display:-webkit-box;overflow:hidden}.file-browser-card-meta{gap:var(--space-3);font-size:var(--text-3xs);color:var(--color-text-muted);flex-wrap:wrap;justify-content:center;display:flex}.file-browser-card-mtime{white-space:nowrap}.file-browser-card-tags{gap:var(--space-1);flex-wrap:wrap;justify-content:center;max-width:100%;display:flex}.file-browser-card-tags .file-browser-tag{cursor:default;pointer-events:none;font-size:var(--text-2xs);padding:0 5px}.file-browser-modal-backdrop{z-index:var(--z-modal);background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));padding:var(--space-8);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.file-browser-modal{background:var(--bg-app);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:var(--modal-max-h);flex-direction:column;display:flex;overflow:hidden}@supports not (height:100dvh){.file-browser-modal{max-height:min(88vh,720px)}}.file-browser-modal-head{align-items:center;gap:var(--space-4);padding:var(--space-6) var(--space-8);border-bottom:1px solid var(--border-default);font-size:var(--text-md);display:flex}.file-browser-modal-head strong{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-browser-modal-close{cursor:pointer;color:var(--color-text-muted);padding:var(--space-2);background:0 0;border:none;align-items:center;display:inline-flex}.file-browser-modal-close:hover,.file-browser-modal-close:focus-visible{color:var(--color-text)}.file-browser-modal-body{padding:var(--space-8);gap:var(--space-7);flex-direction:column;display:flex;overflow-y:auto}.file-browser-field{gap:var(--space-3);flex-direction:column;display:flex}.file-browser-field>label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);display:inline-flex}.file-browser-field textarea{resize:vertical;width:100%;padding:var(--space-4) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-base);background:var(--bg-app);color:var(--color-text);box-sizing:border-box;font-family:inherit}.file-browser-field textarea:focus{border-color:var(--focus-ring-color);outline:none}.file-browser-field-hint{font-size:var(--text-xs);color:var(--color-text-muted);text-align:right}.file-browser-field-readonly{gap:var(--space-2);padding:var(--space-4) var(--space-5);background:var(--bg-panel);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-muted);flex-direction:column;display:flex}.file-browser-tag-input-area{gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-app);min-height:var(--space-18);flex-wrap:wrap;align-items:center;display:flex}.file-browser-tag-input-area:focus-within{border-color:var(--color-accent)}.file-browser-tag-input-area input{min-width:100px;font-size:var(--text-sm);background:0 0;border:none;outline:none;flex:1}.file-browser-tag-chip{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-4);color:#4338ca;border-radius:var(--radius-2xl);font-size:var(--text-xs);font-weight:var(--weight-medium);background:#eef2ff;display:inline-flex}.file-browser-tag-chip button{padding:var(--space-1);cursor:pointer;color:#4338ca;border-radius:var(--radius-full);background:0 0;border:none;align-items:center;display:inline-flex}.file-browser-tag-chip button:hover{background:#4338ca26}.file-browser-tag-suggestions{gap:var(--space-2);flex-wrap:wrap;padding:4px 0;display:flex}.file-browser-tag-suggestion{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-xl);cursor:pointer;font-size:var(--text-xs);color:var(--color-text-muted);display:inline-flex}.file-browser-tag-suggestion:hover{color:#4338ca;background:#eef2ff}.file-browser-tag-suggestion>span{font-size:var(--text-3xs);color:var(--color-text-muted)}.file-browser-modal-foot{padding:var(--space-6) var(--space-8);border-top:1px solid var(--border-default);gap:var(--space-4);justify-content:flex-end;display:flex}@media (width<=640px){.file-browser-header{padding:var(--space-5) var(--space-6);gap:var(--space-4)}.file-browser-search{flex:auto;min-width:0}.file-browser-btn{padding:var(--space-4) var(--space-6);font-size:var(--text-base)}.file-browser-row-actions{opacity:1}.file-browser-row-actions button{width:var(--space-16);height:var(--space-16)}.file-browser-table tbody td{padding:var(--space-6) var(--space-4)}.file-browser-table{font-size:var(--text-sm)}.file-browser-modal{max-width:100%}.file-browser-table tbody tr{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-y}.file-browser-table th:nth-child(3),.file-browser-table td:nth-child(3),.file-browser-table th:nth-child(4),.file-browser-table td:nth-child(4),.file-browser-table th:nth-child(6),.file-browser-table td:nth-child(6){display:none}.file-browser-table tbody td{min-height:var(--tap-min)}}.dr-compose-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-dropdown);padding:var(--space-10);animation:dr-compose-fade var(--dur-fast) ease;background:#0f172a8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes dr-compose-fade{0%{opacity:0}to{opacity:1}}.dr-compose-modal{background:var(--bg-app);color:var(--color-text);border-radius:var(--radius-2xl);width:96vw;max-width:1120px;height:92vh;box-shadow:var(--shadow-xl), var(--shadow-md);flex-direction:column;display:flex;position:relative;overflow:hidden}.dr-compose-header{padding:var(--space-7) var(--space-10);border-bottom:1px solid var(--border-default);background:linear-gradient(to bottom, var(--bg-app), var(--bg-row-alt));justify-content:space-between;align-items:center;gap:var(--space-8);flex:none;display:flex}.dr-compose-header-left{align-items:center;gap:var(--space-7);flex-wrap:wrap;display:flex}.dr-compose-header-right{align-items:center;gap:var(--space-4);display:flex}.dr-compose-date{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-app);transition:border-color var(--t-base);display:inline-flex}.dr-compose-date:hover,.dr-compose-date:focus-visible{border-color:var(--color-accent)}.dr-compose-date svg{color:var(--color-accent)}.dr-compose-date input{font-size:var(--text-md);font-weight:var(--weight-semibold);color:inherit;background:0 0;border:none;outline:none;font-family:inherit}.dr-compose-member{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5);font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text);background:var(--bg-row-alt);border-radius:var(--radius-pill);display:inline-flex}.dr-compose-member-select{align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-5) var(--space-1) var(--space-6);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);background:var(--bg-row-alt);border-radius:var(--radius-pill);border:1px dashed var(--border-default);display:inline-flex}.dr-compose-member-select select{font-size:var(--text-base);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-2);cursor:pointer;background:0 0;border:none}.dr-compose-member-select select:disabled{opacity:.55}.dr-compose-section-h4{align-items:center;gap:var(--space-3);display:inline-flex}.dr-compose-marker-hint{font-size:var(--text-2xs);color:var(--color-text-faint);margin:var(--space-1) 0 var(--space-2);letter-spacing:.1px;display:block}.dr-panel-action-secondary{color:var(--color-text-muted);padding:var(--space-2) var(--space-3);background:0 0;border-color:#0000}.dr-panel-action-secondary:hover:not(:disabled),.dr-panel-action-secondary:focus-visible:not(:disabled){background:var(--bg-header);color:var(--color-text)}.dr-invalid-date-warn{font-weight:var(--weight-semibold);align-items:center;gap:var(--space-2);display:inline-flex;color:var(--color-warning)!important}.dr-invalid-date-warn:hover:not(:disabled),.dr-invalid-date-warn:focus-visible:not(:disabled){background:color-mix(in srgb, var(--color-warning) 14%, transparent)!important}.dr-panel-action-divider{width:1px;height:var(--space-10);background:var(--bg-header);margin:0 var(--space-2);vertical-align:middle;display:inline-block}.dr-compose-saved{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-5);font-size:var(--text-sm);font-weight:var(--weight-medium);border-radius:var(--radius-pill);display:inline-flex}.dr-compose-saved:before{content:"";border-radius:var(--radius-full);background:var(--slate-400);width:7px;height:7px;display:inline-block}.dr-compose-saved.ok{color:var(--green-600);background:var(--green-50)}.dr-compose-saved.ok:before{background:var(--green-500)}.dr-compose-saved.none{color:var(--color-text-muted);background:var(--bg-header)}.dr-compose-danger{color:var(--color-danger)!important;border-color:var(--red-200)!important;background:var(--red-50)!important}.dr-compose-danger:hover,.dr-compose-danger:focus-visible{background:var(--bg-danger)!important;border-color:var(--red-300)!important}.dr-compose-draft-banner{align-items:center;gap:var(--space-6);padding:var(--space-5) var(--space-10);background:var(--amber-50);border-bottom:1px solid var(--amber-200);border-left:4px solid var(--amber-500);font-size:var(--text-base);color:var(--amber-900);display:flex}.dr-compose-draft-banner svg{color:var(--color-warning);flex-shrink:0}.dr-compose-draft-banner>span{flex:1}.dr-compose-body{padding:var(--space-10) var(--space-12) var(--space-12);background:var(--bg-row-alt);flex:auto;overflow-y:auto}.dr-compose-section-head{margin:var(--space-2) 0 var(--space-7);padding-bottom:var(--space-4);border-bottom:2px solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.dr-compose-section-head h4{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text);letter-spacing:-.01em;margin:0}.dr-compose-attendance-head{margin-top:var(--space-14)}.dr-compose-card{border:1px solid var(--border-default);border-radius:var(--radius-xl);margin-bottom:var(--space-6);background:var(--bg-app);transition:box-shadow var(--t-base), border-color var(--t-base), transform var(--t-fast);position:relative;overflow:hidden}.dr-compose-card:has(.dr-compose-card-body){border-color:var(--accent-200);box-shadow:0 2px 8px #3b82f614}.dr-compose-card:has(.dr-compose-card-body):before{content:"";background:var(--color-accent);width:3px;position:absolute;top:0;bottom:0;left:0}.dr-compose-card-head{align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-8);cursor:pointer;background:var(--bg-app);transition:background var(--t-base);display:flex}.dr-compose-card-head:hover,.dr-compose-card-head:focus-visible{background:var(--bg-panel)}.dr-compose-card:has(.dr-compose-card-body) .dr-compose-card-head{background:var(--accent-50);border-bottom:1px solid var(--accent-200)}.dr-compose-card-num{font-weight:var(--weight-bold);font-size:var(--text-base);color:var(--color-text-faint);background:var(--bg-row-alt);padding:var(--space-1) var(--space-4);border-radius:var(--radius-md);font-feature-settings:"tnum";flex-shrink:0}.dr-compose-card:has(.dr-compose-card-body) .dr-compose-card-num{color:var(--color-accent);background:var(--accent-100)}.dr-compose-card-preview{font-size:var(--text-base);color:var(--color-text);font-weight:var(--weight-medium);flex:1}.dr-compose-card-preview em{color:var(--color-text-muted);font-style:italic;font-weight:var(--weight-normal)}.dr-compose-card-remove{color:var(--color-text-muted);cursor:pointer;padding:var(--space-3);border-radius:var(--radius-md);transition:background var(--t-base), color var(--t-base);background:0 0;border:none}.dr-compose-card-remove:hover,.dr-compose-card-remove:focus-visible{background:var(--red-50);color:var(--color-danger)}.dr-compose-card-body{padding:var(--space-9) var(--space-10);gap:var(--space-7);background:var(--slate-50);flex-direction:column;display:flex}.dr-compose-row{gap:var(--space-7);flex-wrap:wrap;display:flex}.dr-compose-row>label,.dr-compose-full{gap:var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-faint);letter-spacing:.01em;flex-direction:column;flex:180px;display:flex}.dr-compose-row>label.grow,.dr-compose-full{flex:100%}.dr-compose-progress-row{align-items:center;gap:var(--space-3);display:flex}.dr-compose-progress-row>input[type=range]{flex:auto;min-width:0}.dr-compose-progress-row>.dr-compose-progress-num{text-align:right;flex:0 0 64px;width:64px}.dr-compose-card-body input,.dr-compose-card-body select,.dr-compose-card-body textarea,.dr-compose-attendance input,.dr-compose-attendance select{padding:var(--space-4) 11px;font-size:var(--text-base);color:var(--color-text);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);font-family:inherit;font-weight:var(--weight-normal);transition:border-color var(--t-base), box-shadow var(--t-base)}.dr-compose-card-body textarea{font-family:var(--font-mono);resize:vertical;line-height:var(--leading-relaxed)}.dr-compose-details{min-height:280px;font-size:var(--text-md)!important}.dr-compose-details-label{justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.dr-compose-details-expand{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-faint);cursor:pointer;transition:all var(--t-base);background:0 0;display:inline-flex}.dr-compose-details-expand:hover,.dr-compose-details-expand:focus-visible{background:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent)}.dr-compose-card-body input[type=range]{appearance:none;height:var(--space-11);background:0 0;border:none;padding:0}.dr-compose-card-body input[type=range]::-webkit-slider-runnable-track{height:var(--space-3);border-radius:var(--radius-xs);background:linear-gradient(to right, var(--slate-300) 0%, var(--slate-400) 33%, var(--accent-400) 66%, var(--green-500) 100%)}.dr-compose-card-body input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:var(--space-8);height:var(--space-8);border-radius:var(--radius-full);background:var(--bg-app);border:2px solid var(--color-accent);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--t-fast);margin-top:-5px}.dr-compose-card-body input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.dr-compose-card-body input:focus,.dr-compose-card-body select:focus,.dr-compose-card-body textarea:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #3b82f61f}.dr-compose-focus-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;padding:var(--space-12);animation:dr-compose-fade var(--dur-fast) ease;background:#0f172a80;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dr-compose-focus-modal{background:var(--bg-app);color:var(--color-text);border-radius:var(--radius-xl);width:100%;height:100%;box-shadow:var(--shadow-xl);flex-direction:column;display:flex;overflow:hidden}.dr-compose-focus-head{padding:var(--space-6) var(--space-9);border-bottom:1px solid var(--border-default);background:var(--bg-row-alt);flex:none;justify-content:space-between;align-items:center;display:flex}.dr-compose-focus-title{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text)}.dr-compose-focus-textarea{padding:var(--space-12) var(--space-16);font-size:var(--text-md);line-height:1.85;font-family:var(--font-mono);color:var(--color-text);background:var(--bg-app);resize:none;border:none;outline:none;flex:auto}.dr-compose-images{border-top:1px dashed var(--border-default);padding-top:var(--space-7);margin-top:var(--space-3)}.dr-compose-images-head{align-items:center;gap:var(--space-6);margin-bottom:var(--space-5);display:flex}.dr-compose-image-add{align-items:center;gap:var(--space-2);cursor:pointer;font-weight:var(--weight-medium);display:inline-flex}.dr-compose-image-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.dr-compose-image-thumbs{gap:var(--space-5);flex-wrap:wrap;display:flex}.dr-compose-image-thumb{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-row-alt);width:148px;transition:border-color var(--t-base), box-shadow var(--t-base), transform var(--t-fast);position:relative;overflow:hidden}.dr-compose-image-thumb:hover,.dr-compose-image-thumb:focus-visible{border-color:var(--color-accent);transform:translateY(var(--lift-y));box-shadow:0 4px 12px #3b82f626}.dr-compose-image-thumb img{object-fit:cover;width:100%;height:96px;display:block}.dr-compose-image-thumb span{padding:var(--space-2) var(--space-4);font-size:var(--text-2xs);color:var(--color-text-faint);white-space:nowrap;text-overflow:ellipsis;background:var(--bg-app);border-top:1px solid var(--border-default);display:block;overflow:hidden}.dr-compose-image-thumb button{top:var(--space-3);right:var(--space-3);color:var(--color-text-on-accent);border-radius:var(--radius-full);width:var(--space-11);height:var(--space-11);cursor:pointer;transition:background var(--t-base), transform var(--t-fast);background:#0f172abf;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.dr-compose-image-thumb button:hover,.dr-compose-image-thumb button:focus-visible{background:var(--color-danger);transform:scale(1.08)}.dr-compose-attendance{gap:var(--space-7);padding:var(--space-7) var(--space-9);border:1px solid var(--border-default);border-radius:var(--radius-xl);background:var(--bg-app);flex-wrap:wrap;display:flex}.dr-compose-attendance>label{gap:var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-faint);letter-spacing:.01em;flex-direction:column;flex:140px;display:flex}.dr-compose-attendance>label.grow{flex:2 200px}.dr-compose-attendance input:focus,.dr-compose-attendance select:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #3b82f61f}.dr-compose-footer{border-top:1px solid var(--border-default);padding:var(--space-7) var(--space-10);background:var(--bg-app);gap:var(--space-5);flex-direction:column;flex:none;display:flex}.dr-compose-footer-actions{gap:var(--space-5);justify-content:flex-end;align-items:center;display:flex}.dr-compose-footer-actions .btn{padding:9px var(--space-9);font-size:var(--text-md);font-weight:var(--weight-semibold);border-radius:var(--radius-lg)}.dr-compose-footer-actions .btn-primary{padding:var(--space-5) var(--space-11);background:var(--color-accent);border-color:var(--color-accent);color:var(--color-text-on-accent);transition:all var(--t-base);box-shadow:0 2px 6px #3b82f640}.dr-compose-footer-actions .btn-primary:hover:not(:disabled),.dr-compose-footer-actions .btn-primary:focus-visible:not(:disabled){background:var(--color-accent);border-color:var(--color-accent);transform:translateY(var(--lift-y));box-shadow:0 4px 12px #3b82f659}.dr-compose-footer-actions .btn-primary:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.dr-compose-error{align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);background:var(--red-50);border:1px solid var(--red-200);border-radius:var(--radius-lg);color:var(--red-600);font-size:var(--text-base);font-weight:var(--weight-medium);display:flex}.dr-compose-conflict{gap:var(--space-4);padding:var(--space-5) var(--space-6);background:var(--status-warning-bg);border:1px solid var(--status-warning-border);border-radius:var(--radius-lg);color:var(--status-warning-text);font-size:var(--text-base);flex-direction:column;display:flex}.dr-compose-conflict-msg{align-items:flex-start;gap:var(--space-4);word-break:keep-all;overflow-wrap:anywhere;line-height:1.5;display:flex}.dr-compose-conflict-msg>svg{flex:none;margin-top:2px}.dr-compose-conflict-actions{gap:var(--space-4);flex-wrap:wrap;display:flex}@media (width<=640px){.dr-compose-overlay{padding:0}.dr-compose-modal{border-radius:0;width:100vw;height:100dvh}.dr-compose-header{padding:var(--space-6) var(--space-7)}.dr-compose-header-left{gap:var(--space-4)}.dr-compose-body{padding:var(--space-7)}.dr-compose-row{flex-direction:column}.dr-compose-row>label{flex:auto}.dr-compose-image-thumb{width:calc(50% - 5px)}.dr-compose-footer{padding:var(--space-6) var(--space-7)}.dr-compose-modal input,.dr-compose-modal select,.dr-compose-modal textarea{scroll-margin-block:var(--space-10) var(--space-12);font-size:var(--text-lg)}.dr-compose-details{font-size:var(--text-lg)!important}.dr-compose-focus-overlay{padding:0}.dr-compose-focus-modal{border-radius:0}}@supports not (height:100dvh){@media (width<=640px){.dr-compose-modal{height:100vh}}}.web-viewer-savedat{color:var(--color-text-faint);font-size:var(--text-xs)}.web-viewer-images{margin-top:var(--space-6)}.web-viewer-images-head{align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-faint);margin-bottom:var(--space-3);display:inline-flex}.web-viewer-image-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.web-viewer-image-thumb{aspect-ratio:4/3;background:var(--bg-row-alt);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:zoom-in;transition:transform var(--t-fast), border-color var(--t-fast);padding:0;display:block;overflow:hidden}.web-viewer-image-thumb:hover{border-color:var(--color-accent);transform:scale(1.01)}.web-viewer-image-thumb img{object-fit:cover;width:100%;height:100%;display:block}.web-viewer-attendance{margin-top:var(--space-10);padding:var(--space-6) var(--space-8);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-row-alt)}.web-viewer-attendance-head{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-faint);margin-bottom:var(--space-2);text-transform:none}.web-viewer-attendance-body{font-size:var(--text-base);color:var(--color-text)}.web-viewer-attendance-type{font-weight:var(--weight-semibold)}.web-viewer-attendance-note{color:var(--color-text-faint)}.web-viewer-lightbox{z-index:300;cursor:zoom-out;overscroll-behavior:contain;animation:web-viewer-lightbox-fade var(--dur-fast) ease;background:#000000e6;flex-direction:column;display:flex;position:fixed;inset:0}@keyframes web-viewer-lightbox-fade{0%{opacity:0}to{opacity:1}}.web-viewer-lightbox-bar{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-5) var(--space-8);color:var(--color-text-on-accent);cursor:default;background:#00000080;flex:none;display:flex}.web-viewer-lightbox-name{font-size:var(--text-base);color:var(--border-default);white-space:nowrap;text-overflow:ellipsis;max-width:60vw;overflow:hidden}.web-viewer-lightbox-count{color:var(--slate-400);font-variant-numeric:tabular-nums}.web-viewer-lightbox-actions{gap:var(--space-3);flex-shrink:0;display:flex}.web-viewer-lightbox-actions .btn,.web-viewer-lightbox-actions a.btn{color:var(--color-text-on-accent);align-items:center;gap:var(--space-2);background:#ffffff1a;border:1px solid #fff3;text-decoration:none;display:inline-flex}.web-viewer-lightbox-actions .btn:hover,.web-viewer-lightbox-actions a.btn:hover{background:#fff3;border-color:#fff6}.web-viewer-lightbox-stage{min-height:0;padding:var(--space-10);cursor:zoom-out;flex:auto;justify-content:center;align-items:center;display:flex;position:relative}.web-viewer-lightbox-img{object-fit:contain;border-radius:var(--radius-md);cursor:default;background:#fff;max-width:100%;max-height:100%;box-shadow:0 4px 24px #0006}.web-viewer-lightbox-nav{color:#fff;cursor:pointer;z-index:1;background:#00000073;border:1px solid #fff3;border-radius:999px;justify-content:center;align-items:center;width:46px;height:46px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.web-viewer-lightbox-nav:hover{background:#000000b8;border-color:#ffffff80}.web-viewer-lightbox-nav.prev{left:var(--space-4,var(--space-8))}.web-viewer-lightbox-nav.next{right:var(--space-4,var(--space-8))}.dr-compose-section-actions{align-items:center;gap:var(--space-3);display:flex}.dr-compose-import-wrap{position:relative}.dr-compose-import-dropdown{top:calc(100% + var(--space-2));z-index:20;background:var(--bg-app);width:min(480px,92vw);color:var(--color-text);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);flex-direction:column;max-height:60vh;display:flex;position:absolute;right:0;overflow:hidden}.dr-compose-import-head{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-default);background:var(--bg-row-alt);font-size:var(--text-sm);color:var(--color-text-faint);flex-shrink:0;display:flex}.dr-compose-import-head>span{font-weight:var(--weight-semibold);color:var(--color-text);flex:1}.dr-compose-import-toggle{align-items:center;gap:var(--space-2);font-size:var(--text-xs);cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex}.dr-compose-import-toggle input{margin:0}.dr-compose-import-close{cursor:pointer;color:var(--color-text-faint);padding:var(--space-1) var(--space-2);background:0 0;border:none}.dr-compose-import-close:hover,.dr-compose-import-close:focus-visible{color:var(--color-accent)}.dr-compose-import-empty{padding:var(--space-10) var(--space-6);text-align:center;color:var(--color-text-faint);font-size:var(--text-sm)}.dr-compose-import-list{margin:0;padding:0;list-style:none;overflow-y:auto}.dr-compose-import-item{align-items:center;gap:var(--space-5);width:100%;padding:var(--space-4) var(--space-6);border:none;border-bottom:1px solid var(--border-default);color:var(--color-text);cursor:pointer;text-align:left;font:inherit;background:0 0;display:flex}.dr-compose-import-item:hover:not(:disabled),.dr-compose-import-item:focus-visible:not(:disabled){background:var(--bg-hover)}.dr-compose-import-item:disabled{opacity:var(--disabled-opacity);cursor:wait}.dr-compose-import-date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint);min-width:var(--space-20);flex-shrink:0}.dr-compose-import-cat{font-size:var(--text-3xs);padding:1px var(--space-3);color:var(--color-accent);border-radius:var(--radius-xs);white-space:nowrap;text-overflow:ellipsis;background:#3b82f614;flex-shrink:0;max-width:110px;overflow:hidden}.dr-compose-import-title{font-size:var(--text-base);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.dr-compose-import-progress{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint);min-width:var(--space-18);text-align:right;flex-shrink:0}.web-viewer-history{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px dashed var(--border-default)}.web-viewer-history-toggle{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-faint);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;display:inline-flex}.web-viewer-history-toggle:hover,.web-viewer-history-toggle:focus-visible{background:var(--bg-hover);color:var(--color-accent)}.web-viewer-history-list{margin:var(--space-3) 0 0;border-left:2px solid var(--border-default);padding:0;list-style:none}.web-viewer-history-item{margin-left:var(--space-6);padding:var(--space-1) 0;position:relative}.web-viewer-history-item-btn{align-items:center;gap:var(--space-5);width:100%;padding:var(--space-3) var(--space-5);text-align:left;font:inherit;color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;display:flex}.web-viewer-history-item-btn:hover:not(:disabled),.web-viewer-history-item-btn:focus-visible:not(:disabled){background:var(--bg-hover)}.web-viewer-history-item-btn:disabled{cursor:default;opacity:.7}.web-viewer-history-date{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint);flex-shrink:0;min-width:82px}.web-viewer-history-progress{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent);min-width:var(--space-18);text-align:right;font-weight:var(--weight-semibold);flex-shrink:0}.web-viewer-history-text{font-size:var(--text-sm);color:var(--color-text-faint);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.dr-compose-modal.drag-over{outline:3px dashed var(--focus-ring-color);outline-offset:-4px}.dr-compose-dropzone-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;gap:var(--space-4);z-index:var(--z-sticky);pointer-events:none;color:var(--color-accent);background:#3b82f61f;flex-direction:column;display:flex;position:absolute;inset:0}.dr-compose-dropzone-overlay p{font-size:var(--text-lg);font-weight:var(--weight-semibold);margin:0}.dr-compose-dropzone-hint{font-size:var(--text-sm)!important;font-weight:var(--weight-normal)!important;color:var(--color-text-faint)!important}.dr-compose-marker-palette{align-items:center;gap:var(--space-2);margin:var(--space-2) 0;padding:var(--space-3) var(--space-4);background:var(--bg-row-alt);border:1px solid var(--border-default);border-radius:var(--radius-sm);flex-wrap:wrap;display:flex}.dr-compose-marker-hint{font-size:var(--text-xs);color:var(--color-text-faint);margin-right:var(--space-2)}.dr-compose-marker-btn{padding:var(--space-1) var(--space-5);min-width:var(--space-14);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-base);font-family:var(--font-mono);color:var(--color-text);cursor:pointer}.dr-compose-marker-btn:hover,.dr-compose-marker-btn:focus-visible{background:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent)}.dr-compose-marker-btn:active{transform:translateY(var(--press-y))}@media (width<=640px){.dr-compose-marker-btn{min-height:var(--space-18);min-width:var(--space-20)}.dr-compose-card-remove{min-width:var(--space-18);min-height:var(--space-18)}.dr-compose-section-actions .btn,.dr-compose-details-expand,.dr-compose-image-add,.dr-compose-card-body input[type=range]{min-height:var(--space-18)}.dr-compose-marker-palette .dr-compose-marker-hint:last-child,.dr-compose-full>.dr-compose-marker-hint{display:none}}.dr-compose-card-summary{align-items:center;gap:var(--space-5);margin-right:var(--space-3);display:inline-flex}.dr-compose-card-progress-mini{align-items:center;gap:var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-faint);display:inline-flex}.dr-compose-card-progress-mini-bar{width:60px;height:var(--space-3);background:var(--bg-row-alt);border-radius:var(--radius-xs);display:inline-block;overflow:hidden}.dr-compose-card-progress-mini-bar>span{background:linear-gradient(to right, var(--slate-400), var(--accent-400), var(--green-500));height:100%;transition:width var(--t-slow);display:block}.dr-compose-card-progress-mini-num{font-feature-settings:"tnum";min-width:var(--space-15);text-align:right}.dr-compose-card-imgcount{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-accent);background:var(--bg-hover);border:1px solid var(--accent-200);border-radius:var(--radius-pill);display:inline-flex}.gcal-conn-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gcal-conn-modal{background:var(--bg-app);border-radius:var(--radius-xl);width:520px;max-width:94vw;max-height:var(--modal-max-h);box-shadow:var(--shadow-xl);flex-direction:column;display:flex;overflow:hidden}.gcal-conn-head{padding:var(--space-7) var(--space-10);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;display:flex}.gcal-conn-head h2{align-items:center;gap:var(--space-4);font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text);margin:0;display:inline-flex}.gcal-conn-close{cursor:pointer;color:var(--color-text-muted);padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;display:inline-flex}.gcal-conn-close:hover:not(:disabled),.gcal-conn-close:focus-visible:not(:disabled){background:var(--bg-header);color:var(--color-text)}.gcal-conn-close:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.gcal-conn-body{gap:var(--space-6);flex-direction:column;padding:18px 20px;display:flex}.gcal-conn-desc{font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-muted);margin:0}.gcal-conn-state{padding:var(--space-7);border-radius:var(--radius-lg);font-size:var(--text-base)}.gcal-conn-state.loading{background:var(--bg-panel);color:var(--color-text-muted);align-items:center;gap:var(--space-4);display:inline-flex}.gcal-conn-state.idle{background:var(--bg-panel);color:var(--color-text-muted);border:1px dashed var(--border-strong)}.gcal-conn-state.connected{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.gcal-conn-state-row{align-items:center;gap:var(--space-5);display:flex}.gcal-conn-state-row>div{gap:var(--space-1);line-height:var(--leading-snug);flex-direction:column;display:flex}.gcal-conn-state-row strong{font-weight:var(--weight-semibold);font-size:var(--text-base)}.gcal-conn-state-row span{font-size:var(--text-sm);color:var(--color-success)}.gcal-conn-state-sub{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--color-success);padding-left:26px}.gcal-conn-msg{padding:var(--space-5) var(--space-6);border-radius:var(--radius-md);font-size:var(--text-sm);align-items:center;gap:var(--space-3);display:inline-flex}.gcal-conn-msg.error{color:var(--color-danger);background:#fef2f2;border:1px solid #fecaca}.gcal-conn-msg.ok{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.gcal-conn-notes{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-relaxed);margin:0;padding-left:18px}.gcal-conn-cats{padding:var(--space-6) var(--space-7);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-lg)}.gcal-conn-cats-head{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.gcal-conn-cats-head strong{font-size:var(--text-base);color:var(--color-text)}.gcal-conn-cats-all{cursor:pointer;font-size:var(--text-xs);color:#3b82f6;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);background:0 0;border:none}.gcal-conn-cats-all:hover{background:var(--bg-hover)}.gcal-conn-cats-grid{gap:var(--space-2) var(--space-8);grid-template-columns:1fr 1fr;display:grid}.gcal-conn-cat-item{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text);cursor:pointer;padding:3px 0;display:flex}.gcal-conn-cat-item input[type=checkbox]{accent-color:#3b82f6;margin:0}.gcal-conn-actions{justify-content:flex-end;gap:var(--space-4);padding:var(--space-7) var(--space-10);border-top:1px solid var(--border-default);background:var(--bg-panel);display:flex}.page-transition-in{animation:page-fade-in-neutral var(--dur-base) ease-out both;will-change:opacity, transform}.page-transition-in[data-direction=forward]{animation:page-slide-in-forward var(--dur-page) cubic-bezier(.22, 1, .36, 1) both}.page-transition-in[data-direction=back]{animation:page-slide-in-back var(--dur-page) cubic-bezier(.22, 1, .36, 1) both}.page-transition-in[data-direction=neutral]{animation:page-fade-in-neutral var(--dur-base) ease-out both}@keyframes page-slide-in-forward{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes page-slide-in-back{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes page-fade-in-neutral{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.page-transition-in,.page-transition-in[data-direction=forward],.page-transition-in[data-direction=back],.page-transition-in[data-direction=neutral]{animation:none!important}}@media print{.page-transition-in{animation:none!important}}.sk-box{background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f1f5f9) 0 0/200px 100% no-repeat;background:var(--bg-header);border-radius:var(--radius-md);animation:skeleton-shimmer var(--dur-shimmer) ease-in-out infinite}@media (prefers-reduced-motion:reduce){.sk-box{background:var(--bg-header);animation:none!important}}.dr-viewer-enter{will-change:opacity, transform;flex-direction:column;flex:1;min-height:0;animation:.24s cubic-bezier(.2,.8,.2,1) both dr-viewer-enter;display:flex;overflow:hidden}@keyframes dr-viewer-enter{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.dr-viewer-enter{animation:none!important}}.cal-subtab-enter{min-height:0;animation:page-fade-in-neutral var(--dur-base) ease-out both;flex-direction:column;display:flex;overflow-y:auto}@media (prefers-reduced-motion:reduce){.cal-subtab-enter{animation:none!important}}.files-skeleton-header{align-items:center;gap:var(--space-4);padding:var(--space-7) var(--space-12);border-bottom:1px solid var(--border-default);background:var(--bg-app);display:flex}.files-skeleton-body{padding:var(--space-2) var(--space-12);flex:1;overflow:hidden}.files-skeleton-row{align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-2);border-bottom:1px solid var(--border-default);display:flex}.cal-skeleton-header{gap:var(--space-4);padding:var(--space-8) var(--space-12) var(--space-6);border-bottom:1px solid var(--border-default);background:var(--bg-app);display:flex}.cal-skeleton-body{padding:var(--space-10) var(--space-12);flex:1;overflow:hidden}.cal-skeleton-grid{gap:var(--space-3);grid-template-columns:repeat(7,1fr);display:grid}.dr-skeleton-body{gap:0;height:100%;min-height:0;display:flex}.dr-skeleton-list{border-right:1px solid var(--border-default);width:360px;padding-top:var(--space-2);flex-shrink:0;overflow:hidden}.dr-skeleton-card{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-default)}.dr-skeleton-viewer{padding:var(--space-10) var(--space-14);flex:1;overflow:hidden}.dr-month-row{align-items:center;gap:var(--space-2);padding-right:var(--space-2);z-index:5;background:var(--bg-panel);box-shadow:0 1px 0 var(--border-default);flex-wrap:nowrap;display:flex;position:sticky;top:0}.dr-month-row .dr-month-toggle{flex-wrap:nowrap;flex:1 1 0;min-width:0;overflow:hidden;white-space:nowrap!important}.dr-month-row .dr-month-toggle>span{white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;overflow:hidden}.dr-month-row .dr-month-toggle>.dr-month-meta{flex-shrink:0}.ms-entry-btn{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);font-size:var(--text-2xs);font-weight:var(--weight-medium);color:var(--color-text-muted);background:var(--bg-header);border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;flex-shrink:0;display:inline-flex}.ms-entry-btn:hover,.ms-entry-btn:focus-visible{background:var(--bg-header);color:var(--color-text)}.ms-entry-btn.ms-entry-agg{background:var(--amber-100);border-color:var(--amber-200);color:var(--amber-800)}.ms-entry-btn.ms-entry-agg:hover{background:var(--amber-200);color:var(--amber-900)}.ms-agg-member{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);font-size:var(--text-sm);gap:var(--space-2);cursor:pointer;text-align:left;transition:background var(--t-fast);flex-direction:column;display:flex}.ms-agg-member:hover{background:var(--bg-hover-neutral)}.ms-agg-member.on{border-color:var(--green-600);background:var(--green-50)}.ms-agg-member.partial{border-color:var(--amber-500);background:var(--amber-50)}.ms-agg-member.off{opacity:.55}.ms-agg-member-row{align-items:center;gap:var(--space-3);font-weight:var(--weight-medium);color:var(--color-text);display:flex}.ms-agg-member-site{font-size:var(--text-3xs);font-weight:var(--weight-semibold);letter-spacing:.3px;padding:1px var(--space-3);border-radius:var(--radius-lg);margin-left:var(--space-2);display:inline-block}.ms-agg-member-site.site-gwh{background:var(--indigo-100);color:var(--indigo-800)}.ms-agg-member-site.site-ddmc{background:var(--fuchsia-100);color:var(--fuchsia-800)}.ms-agg-member-source{font-size:var(--text-3xs);padding:1px var(--space-3);border-radius:var(--radius-lg);margin-left:var(--space-3);font-weight:var(--weight-medium);display:inline-block}.ms-agg-member-source.src-web{background:var(--accent-100);color:var(--accent-800)}.ms-agg-member-source.src-import{background:var(--amber-100);color:var(--amber-800)}.ms-agg-member-updated{font-size:var(--text-3xs);color:var(--color-text-faint);padding-left:var(--space-9);margin-top:1px}.ms-row-dirty td{background:var(--field-focus-bg)!important}.ms-row-dirty td input,.ms-row-dirty td textarea{background:var(--amber-50)}.ms-compose-edit-btn{background:var(--bg-header);color:var(--color-text);align-items:center;gap:var(--space-2);display:inline-flex}.ms-compose-edit-btn:hover,.ms-compose-edit-btn:focus-visible{background:var(--bg-header)}.ms-backups-help{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:var(--space-6)}.ms-backups-error{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);background:var(--red-50);border:1px solid var(--red-200);color:var(--color-danger);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-6);display:flex}.ms-backups-summary{gap:var(--space-6);padding:var(--space-5) var(--space-6);background:var(--bg-panel);border-radius:var(--radius-md);margin-bottom:var(--space-8);flex-wrap:wrap;align-items:center;display:flex}.ms-backups-stat{gap:var(--space-1);flex-direction:column;display:flex}.ms-backups-stat-label{font-size:var(--text-xs);color:var(--color-text-muted)}.ms-backups-stat-val{font-size:var(--text-base);color:var(--color-text);font-weight:var(--weight-medium)}.ms-backups-stat-total .ms-backups-stat-val{color:var(--color-accent)}.ms-backups-cleanup{gap:var(--space-6);padding:var(--space-6);border:1px solid var(--border-default);border-radius:var(--radius-md);flex-direction:column;display:flex}.ms-backups-input-row{align-items:center;gap:var(--space-4);font-size:var(--text-sm);display:flex}.ms-backups-input-row input{width:80px;padding:var(--space-2) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm)}.ms-backups-input-suffix{color:var(--color-text-muted)}.ms-backups-actions{gap:var(--space-4);display:flex}.btn.btn-danger{background:var(--color-danger);color:var(--color-text-on-accent);border-color:var(--color-danger)}.btn.btn-danger:hover:not(:disabled){border-color:var(--red-600);background:#b91c1c}.btn.btn-danger:disabled{cursor:not-allowed;background:#fca5a5;border-color:#fca5a5}.ms-backups-preview{background:var(--amber-50);border:1px solid var(--amber-200);border-radius:var(--radius-md);padding:var(--space-5) var(--space-6);font-size:var(--text-sm)}.ms-backups-preview strong{color:var(--amber-800)}.ms-backups-preview-empty{color:var(--green-700);margin-top:var(--space-3)}.ms-backups-preview-list{margin-top:var(--space-4);gap:var(--space-1);flex-direction:column;max-height:280px;display:flex;overflow-y:auto}.ms-backups-preview-row{gap:var(--space-4);padding:var(--space-1) var(--space-2);border-bottom:1px dashed var(--amber-200);font-size:var(--text-xs);align-items:center;display:flex}.ms-backups-preview-row:last-child{border-bottom:none}.ms-backups-tag{font-size:var(--text-3xs);font-weight:var(--weight-semibold);padding:1px var(--space-3);border-radius:var(--radius-lg);white-space:nowrap;display:inline-block}.ms-backups-tag-aggregate{background:var(--violet-200);color:var(--violet-800)}.ms-backups-tag-draft{background:var(--accent-200);color:var(--accent-800)}.ms-backups-preview-year{color:var(--color-text-muted)}.ms-backups-preview-file{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text);flex:1;overflow:hidden}.ms-backups-preview-size{color:var(--color-text-muted);font-variant-numeric:tabular-nums}.ms-backups-preview-more{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--amber-800);font-style:italic}.ms-backups-restore{gap:var(--space-3);padding:var(--space-6);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-bottom:var(--space-8);flex-direction:column;display:flex}.ms-backups-restore .ms-backups-help{margin-bottom:var(--space-2)}.ms-backups-subtitle{align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:var(--weight-semibold);margin:0;display:flex}.ms-backups-filter{max-width:260px;padding:var(--space-2) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm)}.ms-backups-restore .ms-backups-preview-row{border-bottom-color:var(--border-default)}.ms-agg-member-count{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-medium);margin-left:auto}.ms-agg-member.on .ms-agg-member-count{color:var(--green-600)}.ms-agg-member.partial .ms-agg-member-count{color:var(--amber-700)}.ms-agg-member-meta{font-size:var(--text-2xs);color:var(--color-text-muted);padding-left:var(--space-9)}.ms-agg-member-row{cursor:pointer}.ms-agg-member-dl{align-items:center;gap:var(--space-2);font-size:var(--text-2xs);color:var(--color-accent);padding:var(--space-1) var(--space-4);border-radius:var(--radius-xs);margin-top:var(--space-1);border:1px solid var(--accent-100);background:var(--bg-app);align-self:flex-start;text-decoration:none;display:inline-flex}.ms-agg-member-dl:hover{background:var(--accent-100);text-decoration:none}.ms-agg-member-actions{align-items:center;gap:var(--space-3);margin-top:var(--space-1);display:flex}.ms-agg-member-actions .ms-agg-member-dl{margin-top:0}.ms-agg-member-del{width:var(--space-11);height:var(--space-11);border-radius:var(--radius-xs);border:1px solid var(--border-default);background:var(--bg-app);color:var(--color-text-faint);cursor:pointer;transition:color var(--t-base), border-color var(--t-base), background var(--t-base);justify-content:center;align-items:center;padding:0;display:inline-flex}.ms-agg-member-del:hover:not(:disabled){color:var(--color-danger);border-color:var(--color-danger);background:var(--bg-danger)}.ms-agg-member-del:disabled{cursor:not-allowed;opacity:var(--disabled-opacity)}.ms-agg-member-return{align-items:center;gap:var(--space-1);height:var(--space-11);padding:0 var(--space-3);font-size:var(--text-3xs);font-weight:var(--weight-medium);border-radius:var(--radius-xs);border:1px solid var(--border-default);background:var(--bg-app);color:var(--color-text-muted);cursor:pointer;transition:color var(--t-base), border-color var(--t-base), background var(--t-base);display:inline-flex}.ms-agg-member-return:hover:not(:disabled){color:var(--color-warning);border-color:var(--color-warning);background:var(--amber-50)}.ms-agg-member-return:disabled{cursor:not-allowed;opacity:var(--disabled-opacity)}.ms-agg-member-returned{align-items:center;gap:var(--space-1);font-size:var(--text-3xs);font-weight:var(--weight-semibold);padding:1px var(--space-3);border-radius:var(--radius-lg);margin-left:var(--space-2);background:var(--amber-100);color:var(--amber-800);display:inline-flex}.ms-agg-member-resubmit{align-items:center;gap:var(--space-1);font-size:var(--text-3xs);font-weight:var(--weight-semibold);padding:1px var(--space-3);border-radius:var(--radius-lg);margin-left:var(--space-2);background:var(--red-100);color:var(--red-700);display:inline-flex}.ms-return-backdrop{z-index:var(--z-modal,1000);padding:var(--space-5);background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ms-return-modal{background:var(--bg-surface,#fff);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:min(440px,100%);box-shadow:var(--shadow-lg,0 10px 40px #0003);padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.ms-return-modal-head{align-items:center;gap:var(--space-2);font-size:var(--text-md);color:var(--color-warning);display:flex}.ms-return-modal-head strong{color:var(--color-text)}.ms-return-modal-desc{font-size:var(--text-2xs);color:var(--color-text-muted);margin:0;line-height:1.5}.ms-return-modal-input{width:100%;font-size:var(--text-sm);padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-sm);resize:vertical;box-sizing:border-box;font-family:inherit;line-height:1.5}.ms-return-modal-input:focus-visible{border-color:var(--color-warning);outline:none}.ms-return-modal-actions{justify-content:flex-end;gap:var(--space-3);display:flex}.ms-return-confirm{align-items:center;gap:var(--space-1);background:var(--color-warning);border-color:var(--color-warning);color:#fff;display:inline-flex}.ms-return-confirm:hover:not(:disabled),.ms-return-confirm:focus-visible:not(:disabled){background:var(--amber-600);border-color:var(--amber-600);color:#fff}.ms-compose-returned{align-items:flex-start;gap:var(--space-3);margin:var(--space-3) var(--space-5) 0;padding:var(--space-3) var(--space-4);background:var(--amber-50);border:1px solid var(--amber-200);border-left:3px solid var(--color-warning);border-radius:var(--radius-sm);color:var(--amber-900);display:flex}.ms-compose-returned>svg{color:var(--color-warning);flex-shrink:0;margin-top:1px}.ms-compose-clipped{gap:var(--space-4);padding:var(--space-4) var(--space-9);background:var(--amber-50);border-bottom:1px solid color-mix(in srgb, var(--color-warning) 30%, transparent);flex-shrink:0;display:flex}.ms-compose-clipped>svg{color:var(--color-warning);flex-shrink:0;margin-top:1px}.ms-compose-returned-text{font-size:var(--text-2xs);line-height:1.5}.ms-compose-returned-note{margin-top:var(--space-1);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);white-space:pre-wrap}.ms-entry-btn-returned{background:var(--amber-100);border-color:var(--amber-300,var(--amber-200));color:var(--amber-800)}.ms-entry-btn-returned:hover,.ms-entry-btn-returned:focus-visible{background:var(--amber-200);color:var(--amber-900)}.ms-entry-dot{border-radius:var(--radius-full,9999px);background:var(--color-warning);flex-shrink:0;width:6px;height:6px}.ms-agg-import{gap:var(--space-3);padding:var(--space-5) var(--space-6);margin:var(--space-4) var(--space-4) var(--space-2);background:var(--bg-panel);border:1px dashed var(--border-strong);border-radius:var(--radius-md);flex-direction:column;display:flex}.ms-agg-import-head{align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text);display:flex}.ms-agg-import-row{gap:var(--space-3);align-items:center;display:flex}.ms-agg-import-select{min-width:0;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-app);color:var(--color-text);flex:1}.ms-agg-import-select:disabled{opacity:.55}.ms-agg-import-btn{white-space:nowrap;font-size:var(--text-xs);padding:var(--space-2) var(--space-4)}.ms-agg-import-hint{font-size:var(--text-2xs);color:var(--color-text-muted);line-height:var(--leading-snug)}.ms-agg-progress{gap:var(--space-4);padding:var(--space-5) var(--space-6);margin:var(--space-4) var(--space-4) var(--space-2);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);flex-direction:column;display:flex}.ms-agg-progress-row{gap:var(--space-2);flex-direction:column;display:flex}.ms-agg-progress-head{font-size:var(--text-xs);color:var(--color-text);justify-content:space-between;align-items:baseline;display:flex}.ms-agg-progress-count{font-size:var(--text-2xs);color:var(--color-text-muted)}.ms-agg-progress-bar{background:var(--bg-header);border-radius:var(--radius-xs);height:5px;overflow:hidden}.ms-agg-progress-fill{background:linear-gradient(90deg, var(--green-600) 0%, var(--green-500) 100%);height:100%;transition:width .2s}.ms-agg-missing{gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.ms-agg-missing-label{align-items:center;gap:var(--space-1);font-size:var(--text-2xs);color:var(--red-600);display:inline-flex}.ms-agg-missing-chip{border:1px solid var(--red-200);background:var(--red-50);border-radius:var(--radius-xl);align-items:stretch;display:inline-flex;overflow:hidden}.ms-agg-missing-chip:hover{border-color:var(--red-400)}.ms-agg-missing-chip-name{color:var(--color-danger);font-size:var(--text-2xs);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-4);cursor:pointer;background:0 0;border:none}.ms-agg-missing-chip-name:hover,.ms-agg-missing-chip-name:focus-visible{background:var(--bg-danger)}.ms-agg-missing-chip-hide{color:color-mix(in srgb, var(--color-danger) 45%, transparent);padding:0 var(--space-3) 0 var(--space-1);cursor:pointer;background:0 0;border:none;align-items:center;display:inline-flex}.ms-agg-missing-chip-hide:hover:not(:disabled){color:var(--color-danger);background:var(--bg-danger)}.ms-agg-missing-chip-hide:disabled{cursor:not-allowed;opacity:var(--disabled-opacity)}.ms-agg-missing-copy{align-items:center;gap:var(--space-1);border:1px solid var(--border-strong);background:var(--bg-app);color:var(--color-text-muted);font-size:var(--text-3xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-xl);cursor:pointer;margin-left:var(--space-1);display:inline-flex}.ms-agg-missing-copy:hover{background:var(--bg-header);border-color:var(--color-text-faint)}.ms-agg-missing-notify{align-items:center;gap:var(--space-1);border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);background:color-mix(in srgb, var(--color-accent) 10%, transparent);color:var(--color-accent);font-size:var(--text-3xs);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-3);border-radius:var(--radius-xl);cursor:pointer;margin-left:var(--space-2);display:inline-flex}.ms-agg-missing-notify:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 18%, transparent)}.ms-agg-missing-notify:disabled{cursor:not-allowed;opacity:var(--disabled-opacity)}.ms-agg-excluded{gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.ms-agg-excluded-label{align-items:center;gap:var(--space-1);font-size:var(--text-3xs);color:var(--color-text-faint);display:inline-flex}.ms-agg-excluded-chip{align-items:center;gap:var(--space-1);border:1px dashed var(--border-strong);color:var(--color-text-muted);font-size:var(--text-3xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-xl);cursor:pointer;background:0 0;display:inline-flex}.ms-agg-excluded-chip:hover:not(:disabled){background:var(--bg-header);color:var(--color-text)}.ms-agg-excluded-chip:disabled{cursor:not-allowed;opacity:var(--disabled-opacity)}.ms-request-list{gap:var(--space-1);max-height:240px;margin:var(--space-2) 0;flex-direction:column;display:flex;overflow-y:auto}.ms-request-row{align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;display:flex}.ms-request-row:hover{background:var(--bg-header)}.ms-agg-import-open{margin:var(--space-2) var(--space-4) var(--space-4);align-items:center;gap:var(--space-2);justify-content:center;display:inline-flex}.ms-import-modal{background:var(--bg-app);border-radius:var(--radius-lg);width:min(960px,96vw);max-height:92vh;box-shadow:var(--shadow-xl);flex-direction:column;display:flex}.ms-import-body{padding:var(--space-6);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.ms-import-drop{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-12);border:2px dashed var(--slate-400);border-radius:var(--radius-lg);background:var(--bg-panel);color:var(--color-text-muted);cursor:pointer;text-align:center;flex-direction:column;display:flex}.ms-import-drop:hover{background:var(--bg-hover-neutral)}.ms-import-drop.drag-over{border-color:var(--color-accent);background:var(--accent-100);color:var(--accent-800)}.ms-import-drop-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.ms-import-empty{padding:var(--space-8);text-align:center;font-size:var(--text-sm);color:var(--color-text-faint)}.ms-import-list{gap:var(--space-2);flex-direction:column;display:flex}.ms-import-list-head{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text);justify-content:space-between;align-items:baseline;display:flex}.ms-import-list-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.ms-import-row{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-app);flex-direction:column;display:flex}.ms-import-row.status-saved{border-color:var(--green-600);background:var(--green-50)}.ms-import-row.status-save-error,.ms-import-row.status-preview-error{border-color:var(--color-danger);background:var(--red-50)}.ms-import-row.status-no-member{border-color:var(--amber-500);background:var(--amber-50)}.ms-import-row-head{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);display:flex}.ms-import-expand{cursor:pointer;width:var(--space-9);height:var(--space-9);color:var(--color-text-muted);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.ms-import-expand:disabled{opacity:.3;cursor:default}.ms-import-expand-spacer{width:13px;height:13px;display:inline-block}.ms-import-fname{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text);flex:1;overflow:hidden}.ms-import-size{font-size:var(--text-2xs);color:var(--color-text-faint);white-space:nowrap}.ms-import-member{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-app);max-width:180px}.ms-import-member:disabled{opacity:.55}.ms-import-counts{font-size:var(--text-2xs);color:var(--color-text-muted);white-space:nowrap}.ms-import-badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-4);border-radius:var(--radius-xl);font-size:var(--text-2xs);font-weight:var(--weight-medium);white-space:nowrap;display:inline-flex}.ms-import-badge.tone-pending{background:var(--bg-header);color:var(--color-text-muted)}.ms-import-badge.tone-info{background:var(--accent-100);color:var(--accent-800)}.ms-import-badge.tone-ok{background:var(--green-100);color:var(--green-800)}.ms-import-badge.tone-warn{background:var(--amber-100);color:var(--amber-800)}.ms-import-badge.tone-err{background:var(--bg-danger);color:var(--color-danger)}.ms-import-rm{color:var(--color-text-faint);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-xs);background:0 0;border:none}.ms-import-rm:hover:not(:disabled){background:var(--bg-hover-danger);color:var(--red-600)}.ms-import-rm:disabled{opacity:.3;cursor:default}.ms-import-row-err{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-6) var(--space-3);font-size:var(--text-xs);color:var(--red-600);display:flex}.ms-import-row-meta{padding:0 var(--space-6) var(--space-3);font-size:var(--text-2xs);color:var(--color-text-muted)}.ms-agg-refresh{align-items:center;gap:var(--space-1);font-size:var(--text-2xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);border:1px solid color-mix(in srgb, var(--color-warning) 40%, transparent);background:var(--amber-50);color:var(--color-warning);cursor:pointer;white-space:nowrap;flex-shrink:0;display:inline-flex}.ms-agg-refresh:hover{background:var(--amber-100)}.ms-agg-requested{font-size:var(--text-2xs);color:var(--color-text-muted);padding:0 var(--space-1);white-space:nowrap;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;align-items:center;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline-flex}.ms-agg-requested:hover:not(:disabled),.ms-agg-requested:focus-visible{color:var(--color-danger)}.ms-agg-requested:disabled{cursor:default;opacity:var(--disabled-opacity)}.ms-deadline{font-size:var(--text-2xs);padding:1px var(--space-2);border-radius:var(--radius-xs);background:var(--bg-panel);color:var(--color-text-muted);border:1px solid var(--border-default);white-space:nowrap}.ms-deadline.tone-soon{background:var(--amber-50);color:var(--color-warning);border-color:color-mix(in srgb, var(--color-warning) 35%, transparent)}.ms-deadline.tone-over{background:var(--bg-panel);color:var(--color-text-faint)}.ms-import-row-warn{align-items:flex-start;gap:var(--space-2);padding:0 var(--space-6) var(--space-3);font-size:var(--text-xs);color:var(--color-warning);word-break:keep-all;display:flex}.ms-import-row-warn svg{flex-shrink:0;margin-top:2px}.ms-import-preview{padding:var(--space-2) var(--space-5) var(--space-5);gap:var(--space-4);background:var(--bg-panel);border-top:1px dashed var(--border-default);flex-direction:column;display:flex}.ms-import-preview-block{gap:var(--space-2);flex-direction:column;display:flex}.ms-import-preview-title{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:var(--weight-medium)}.ms-import-preview-table{border-collapse:collapse;width:100%;font-size:var(--text-2xs);background:var(--bg-app);border:1px solid var(--border-default)}.ms-import-preview-table th,.ms-import-preview-table td{padding:var(--space-1) var(--space-3);border:1px solid var(--border-default);text-align:left;vertical-align:top}.ms-import-preview-table th{background:var(--bg-header);font-weight:var(--weight-medium);color:var(--color-text)}.ms-compose-dl-link{align-items:center;gap:var(--space-1);color:var(--color-accent);font-weight:var(--weight-medium);margin-left:var(--space-3);text-decoration:underline;display:inline-flex}.ms-compose-dl-link:hover,.ms-compose-dl-link:focus-visible{color:var(--accent-700)}.ms-compose-dl-btn{align-items:center;gap:var(--space-2);background:var(--bg-app);border:1px solid var(--accent-600);color:var(--color-accent);text-decoration:none;display:inline-flex}.ms-compose-dl-btn:hover,.ms-compose-dl-btn:focus-visible{background:var(--color-accent);color:var(--color-text-on-accent);text-decoration:none}.ms-compose-up-btn{align-items:center;gap:var(--space-2);background:var(--bg-app);border:1px solid var(--amber-500);color:var(--amber-700);display:inline-flex}.ms-compose-up-btn:hover:not(:disabled),.ms-compose-up-btn:focus-visible:not(:disabled){background:var(--amber-500);color:var(--color-text-on-accent)}.ms-compose-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ms-compose-modal{background:var(--bg-app);border-radius:var(--radius-xl);width:96vw;max-width:1600px;height:92vh;max-height:92vh;box-shadow:var(--shadow-xl);flex-direction:column;display:flex;position:relative;overflow:hidden}.ms-compose-loading-fallback{background:var(--bg-app);border-radius:var(--radius-xl);padding:var(--space-12) var(--space-16);align-items:center;gap:var(--space-5);font-size:var(--text-base);color:var(--color-text-muted);box-shadow:var(--shadow-xl);display:inline-flex}.ms-compose-head{padding:var(--space-6) var(--space-9);border-bottom:1px solid var(--border-default);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.ms-compose-title{align-items:center;gap:var(--space-4);font-size:var(--text-md);color:var(--color-text);flex-wrap:wrap;min-width:0;display:flex}.ms-compose-sub{color:var(--color-text-muted);font-weight:var(--weight-normal);font-size:var(--text-base)}.ms-compose-head-right{align-items:center;gap:var(--space-6);font-size:var(--text-xs);display:flex}.ms-compose-saved{color:var(--green-600)}.ms-compose-dirty{color:var(--orange-600);font-weight:var(--weight-medium)}.ms-compose-close{cursor:pointer;color:var(--color-text-muted);padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;display:inline-flex}.ms-compose-close:hover,.ms-compose-close:focus-visible{background:var(--bg-header);color:var(--color-text)}.ms-compose-loading{justify-content:center;align-items:center;gap:var(--space-5);color:var(--color-text-muted);font-size:var(--text-base);flex:1;display:flex}.ms-compose-body{flex:1;min-height:0;display:flex}.ms-compose-left{border-right:1px solid var(--border-default);background:var(--bg-panel);flex-direction:column;flex-shrink:0;width:270px;display:flex}.ms-compose-left-head{padding:var(--space-5) var(--space-7);border-bottom:1px solid var(--border-default);font-size:var(--text-sm);background:var(--bg-app);justify-content:space-between;align-items:center;display:flex}.ms-compose-count{color:var(--color-text-muted);font-size:var(--text-xs)}.ms-compose-left-head-label{align-items:baseline;gap:var(--space-2);min-width:0;display:inline-flex}.ms-compose-addall{align-items:center;gap:var(--space-1);border:1px solid color-mix(in srgb, var(--color-accent) 40%, transparent);background:color-mix(in srgb, var(--color-accent) 10%, transparent);color:var(--color-accent);font-size:var(--text-2xs);font-weight:var(--weight-medium);padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;display:inline-flex}.ms-compose-addall:hover,.ms-compose-addall:focus-visible{background:color-mix(in srgb, var(--color-accent) 18%, transparent)}.ms-compose-bulkbar{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-7);border-bottom:1px solid var(--border-default);background:color-mix(in srgb, var(--color-accent) 6%, transparent);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.ms-compose-bulkbar-count{font-weight:var(--weight-medium);color:var(--color-accent);white-space:nowrap}.ms-compose-bulkbar-clear{color:var(--color-text-muted);cursor:pointer;padding:var(--space-1);background:0 0;border:none;align-items:center;margin-left:auto;display:inline-flex}.ms-compose-bulkbar-clear:hover{color:var(--color-text)}.ms-card-check{margin:0 var(--space-1) 0 0;cursor:pointer;flex-shrink:0}.ms-author-link{font:inherit;color:var(--color-accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.ms-author-link:hover,.ms-author-link:focus-visible{color:var(--color-accent-strong,var(--color-accent))}.ms-source-modal{max-width:560px}.ms-source-card{gap:var(--space-2);flex-direction:column;display:flex}.ms-source-card-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.ms-source-card-title{font-weight:var(--weight-semibold);font-size:var(--text-base)}.ms-source-card-note{font-size:var(--text-2xs);color:var(--color-text-muted);margin:0}.ms-source-card-details{padding:var(--space-4);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-sm);font:inherit;font-size:var(--text-sm);white-space:pre-wrap;word-break:keep-all;overflow-wrap:break-word;max-height:320px;margin:0;overflow-y:auto}.ms-card.selected{border-color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 5%, transparent)}.ms-compose-cards{padding:var(--space-4);gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.ms-empty-cards{padding:var(--space-15) var(--space-8);text-align:center;color:var(--color-text-faint);font-size:var(--text-sm)}.ms-card{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);font-size:var(--text-sm);gap:var(--space-2);cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast);flex-direction:column;display:flex}.ms-card:hover{border-color:var(--border-strong);background:var(--bg-hover-neutral)}.ms-card.used{opacity:.55;background:var(--bg-header)}.ms-card.important{border-left:3px solid var(--color-important);background:var(--amber-50)}.ms-card.important:hover{background:var(--amber-100)}.ms-card-meta{align-items:center;gap:var(--space-3);font-size:var(--text-2xs);color:var(--color-text-muted);display:flex}.ms-card-date{font-weight:var(--weight-semibold);color:var(--color-text)}.ms-card-cat{background:var(--indigo-100);color:var(--indigo-800);padding:1px var(--space-3);border-radius:var(--radius-xs)}.ms-card-used{background:var(--amber-100);color:var(--amber-800);padding:1px var(--space-3);border-radius:var(--radius-xs);font-size:var(--text-3xs);margin-left:auto}.ms-card-title{font-weight:var(--weight-medium);color:var(--color-text);line-height:var(--leading-snug);word-break:break-word}.ms-card-details{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-snug);max-height:var(--space-24);word-break:break-word;overflow:hidden}.ms-card-actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.ms-card-btn{background:var(--bg-app);border:1px solid var(--border-strong);color:var(--color-text-muted);font-size:var(--text-2xs);padding:var(--space-1) var(--space-3);border-radius:var(--radius-xs);cursor:pointer}.ms-card-btn:hover,.ms-card-btn:focus-visible{background:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent)}.ms-card-btn.recommended{background:var(--accent-100);border-color:var(--color-accent);color:var(--accent-800);font-weight:var(--weight-semibold)}.ms-card-btn.recommended:hover{background:var(--color-accent);color:var(--color-text-on-accent)}.ms-detail-overlay{z-index:10;background:#0f172a73;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ms-detail-modal{background:var(--bg-app);border-radius:var(--radius-lg);width:720px;max-width:92%;max-height:80%;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.ms-detail-head{padding:var(--space-6) var(--space-8);border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;gap:var(--space-6);flex-shrink:0;display:flex}.ms-detail-title-row{align-items:center;gap:var(--space-4);font-size:var(--text-base);color:var(--color-text);flex-wrap:wrap;min-width:0;display:flex}.ms-detail-title-row strong{font-weight:var(--weight-semibold);word-break:break-word}.ms-detail-meta{gap:var(--space-6);padding:var(--space-5) var(--space-8);background:var(--bg-panel);border-bottom:1px solid var(--border-default);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;flex-shrink:0;display:flex}.ms-detail-meta strong{color:var(--color-text-faint);font-weight:var(--weight-medium);margin-right:var(--space-2)}.ms-detail-body{padding:var(--space-7) var(--space-8);font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-relaxed);background:var(--bg-app);flex:1;overflow-y:auto}.ms-detail-line{padding:var(--space-1) 0;word-break:break-word}.ms-detail-line:empty{display:none}.ms-detail-foot{align-items:center;gap:var(--space-6);padding:var(--space-5) var(--space-8);border-top:1px solid var(--border-default);background:var(--bg-panel);font-size:var(--text-xs);flex-shrink:0;display:flex}.ms-compose-right{flex-direction:column;flex:1;min-width:0;display:flex}.ms-compose-tabs{border-bottom:1px solid var(--border-default);background:var(--bg-app);flex-shrink:0;display:flex}.ms-tab{padding:var(--space-5) var(--space-8);font-size:var(--text-sm);color:var(--color-text-muted);cursor:pointer;align-items:center;gap:var(--space-3);background:0 0;border:none;border-bottom:2px solid #0000;display:inline-flex}.ms-tab:hover,.ms-tab:focus-visible{color:var(--color-text);background:var(--bg-panel)}.ms-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:var(--weight-semibold)}.ms-tab-count{font-size:var(--text-2xs);background:var(--bg-header);color:var(--color-text-muted);padding:1px var(--space-3);border-radius:var(--radius-lg);font-weight:var(--weight-medium)}.ms-tab.active .ms-tab-count{background:var(--accent-100);color:var(--color-accent)}.ms-compose-sheet{padding:var(--space-6);flex:1;overflow:auto}.ms-table-wrap{gap:var(--space-4);flex-direction:column;display:flex;overflow-x:auto}.ms-table{border-collapse:collapse;font-size:var(--text-xs);table-layout:fixed;min-width:1100px}.ms-table th,.ms-table td{border:1px solid var(--border-default);padding:var(--space-2) var(--space-3);vertical-align:top;word-break:break-word;overflow-wrap:anywhere}.ms-table th{background:var(--bg-header);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-align:left;font-size:var(--text-xs)}.ms-table thead th:first-child,.ms-table tbody td:first-child{z-index:2;box-shadow:4px 0 6px -4px color-mix(in srgb, var(--color-text) 22%, transparent);position:sticky;left:0}.ms-table tbody td:first-child{background:var(--bg-app)}.ms-table thead th:last-child,.ms-table tbody td:last-child:not(.ms-empty){z-index:2;box-shadow:-4px 0 6px -4px color-mix(in srgb, var(--color-text) 22%, transparent);position:sticky;right:0}.ms-table tbody td:last-child:not(.ms-empty){background:var(--bg-app)}.ms-table thead th:first-child,.ms-table thead th:last-child{z-index:3}.ms-table .ms-no{text-align:center;color:var(--color-text-muted);font-weight:var(--weight-medium)}.ms-table .ms-author{color:var(--color-text-muted);font-size:var(--text-xs)}.ms-table .ms-empty{text-align:center;color:var(--color-text-faint);padding:var(--space-15) var(--space-6);font-size:var(--text-sm);border:1px dashed var(--border-strong)}.ms-input{width:100%;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--color-text);box-sizing:border-box;background:0 0;border:none;outline:none}.ms-input:focus{background:var(--field-focus-bg);outline:2px solid var(--color-accent);outline-offset:-2px}.ms-input:read-only{color:var(--color-text-muted)}.ms-num-input{text-align:right;font-variant-numeric:tabular-nums}.ms-textarea{width:100%;padding:var(--space-1) var(--space-2);font-size:var(--text-xs);color:var(--color-text);resize:none;font-family:inherit;line-height:var(--leading-normal);box-sizing:border-box;background:0 0;border:none;outline:none;min-height:2.4em;display:block;overflow:hidden}.ms-textarea:focus{background:var(--field-focus-bg);outline:2px solid var(--color-accent);outline-offset:-2px}.ms-row-del{color:var(--color-text-faint);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-xs);background:0 0;border:none;display:inline-flex}.ms-row-del:hover{background:var(--bg-hover-danger);color:var(--color-danger)}.ms-add-row{background:var(--bg-app);border:1px dashed var(--border-strong);color:var(--color-text-muted);padding:var(--space-3) var(--space-6);font-size:var(--text-sm);border-radius:var(--radius-sm);cursor:pointer;align-self:flex-start;align-items:center;gap:var(--space-2);display:inline-flex}.ms-add-row:hover{background:var(--bg-hover-neutral);border-color:var(--border-strong);color:var(--color-text)}.ms-table .ms-result-cell.ms-result-pending{background:var(--amber-100)}.ms-table .ms-result-cell.ms-result-pending .ms-input,.ms-table .ms-result-cell.ms-result-pending .ms-result-select{color:var(--amber-800);font-weight:var(--weight-semibold)}.ms-table .ms-result-cell.ms-result-done{background:var(--green-50)}.ms-table .ms-result-cell.ms-result-done .ms-input,.ms-table .ms-result-cell.ms-result-done .ms-result-select{color:var(--green-700)}.ms-result-inner{gap:var(--space-1);flex-direction:column;display:flex}.ms-result-select{width:100%;font-size:var(--text-xs);padding:var(--space-1) var(--space-2);cursor:pointer;appearance:auto;color:var(--color-text);background:0 0;border:none;outline:none;font-family:inherit}.ms-result-select:focus{background:var(--field-focus-bg)}.ms-result-custom-input{border-top:1px dashed var(--border-strong)!important;font-size:var(--text-2xs)!important;padding-top:3px!important}.ms-compose-foot{align-items:center;gap:var(--space-6);padding:var(--space-5) var(--space-9);border-top:1px solid var(--border-default);background:var(--bg-panel);font-size:var(--text-xs);flex-shrink:0;display:flex}@media (width<=640px){.ms-compose-modal{border-radius:0;width:100vw;height:100dvh;max-height:100dvh}.ms-compose-head{padding:var(--space-4) var(--space-5)}.ms-compose-body{flex-direction:column}.ms-compose-left{border-right:none;border-bottom:1px solid var(--border-default);width:100%;max-height:30dvh}.ms-compose-left-head{padding:var(--space-3) var(--space-5)}.ms-compose-sheet{padding:var(--space-3)}.ms-compose-foot{padding:var(--space-4) var(--space-5);gap:var(--space-3);flex-wrap:wrap}.ms-compose-close{padding:var(--space-4);justify-content:center;align-items:center;min-width:44px;min-height:44px}.ms-compose-foot button{min-height:36px}.ms-compose-foot>:first-child{flex-basis:100%}.ms-agg-missing-chip-name,.ms-agg-missing-chip-hide,.ms-agg-missing-notify,.ms-agg-missing-copy,.ms-agg-requested,.ms-agg-excluded-chip,.ms-agg-member-return,.ms-agg-member-dl,.ms-agg-member-del,.ms-agg-import-open{min-height:32px}.ms-agg-member-actions{gap:var(--space-3);flex-wrap:wrap}}.ms-compose-error{color:var(--color-danger);align-items:center;gap:var(--space-2);display:inline-flex}.ms-compose-hint{color:var(--color-text-muted)}.ms-compose-actions{gap:var(--space-3);align-items:center;margin-left:auto;display:flex}.ms-compose-del{color:var(--color-danger)}.app-mobile-menu-toggle{border-radius:var(--radius-lg);cursor:pointer;width:44px;height:44px;color:var(--color-text);margin-left:-6px;margin-right:var(--space-2);transition:background var(--t-base);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:none;position:relative}.app-mobile-menu-toggle:hover,.app-mobile-menu-toggle:focus-visible{background:#2e7df60f}.app-mobile-menu-toggle:active{background:#2e7df61f}.app-mobile-menu-toggle-badge{min-width:16px;height:var(--space-8);border-radius:var(--radius-lg);background:var(--color-danger);color:var(--color-text-on-accent);font-size:var(--text-3xs);font-weight:var(--weight-bold);text-align:center;pointer-events:none;padding:0 4px;line-height:16px;position:absolute;top:6px;right:6px}@media (width<=1024px){.app-mobile-menu-toggle{display:inline-flex}.app-header-divider{display:none}}@media (width<=640px){.app-mode-tabs{display:none!important}}.mobile-menu-backdrop{z-index:998;pointer-events:none;transition:background var(--t-slow);background:0 0;position:fixed;inset:0}.mobile-menu-backdrop.open{pointer-events:auto;background:#00000073}.mobile-menu-drawer{background:var(--bg-app);z-index:999;width:280px;max-width:88vw;height:100dvh;padding-left:env(safe-area-inset-left);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;transition:transform .24s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:2px 0 16px #0000002e}.mobile-menu-drawer.open{transform:translate(0)}@supports not (height:100dvh){.mobile-menu-drawer{height:100vh}}@media (width>=641px) and (width<=1024px){.mobile-menu-drawer{width:360px}}@media (width>=1025px){.mobile-menu-backdrop,.mobile-menu-drawer{display:none}}.mobile-menu-header{border-bottom:1px solid var(--border-default);flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 12px 0 16px;display:flex}.mobile-menu-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text)}.mobile-menu-close{width:var(--space-20);height:var(--space-20);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-muted);transition:background var(--t-fast), box-shadow var(--t-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.mobile-menu-close:hover,.mobile-menu-close:focus-visible{background:var(--bg-hover)}.mobile-menu-close:focus-visible{box-shadow:0 0 0 3px var(--accent-glow-soft);outline:none}.mobile-menu-nav{-webkit-overflow-scrolling:touch;flex:auto;padding:8px 0;overflow-y:auto}.mobile-menu-item{width:100%;min-height:var(--tap-min);align-items:center;gap:var(--space-6);cursor:pointer;font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-text);text-align:left;transition:background var(--t-base);transition:background var(--t-base), transform var(--t-fast);background:0 0;border:none;padding:0 16px;display:flex;position:relative}.mobile-menu-item:hover{background:var(--accent-glow-soft)}.mobile-menu-item:active{background:var(--accent-glow-mid);transform:scale(.99)}.mobile-menu-item.active{background:var(--accent-glow-mid);color:var(--color-accent);font-weight:var(--weight-semibold)}.mobile-menu-item.active:before{content:"";background:var(--color-accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:6px;bottom:6px;left:0}.mobile-menu-item-label{flex:auto}.mobile-menu-badge{min-width:var(--space-9);height:var(--space-9);border-radius:var(--radius-lg);background:var(--color-danger);color:var(--color-text-on-accent);font-size:var(--text-xs);font-weight:var(--weight-bold);text-align:center;padding:0 5px;line-height:18px}.mobile-menu-group{margin-top:var(--space-2);border-top:1px solid #f1f5f9;padding:8px 0 4px}.mobile-menu-group:first-child{border-top:none;margin-top:0}.mobile-menu-group-head{align-items:center;gap:var(--space-6);padding:var(--space-3) var(--space-8);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;display:flex}.mobile-menu-group-head.active{color:var(--color-accent)}.mobile-menu-group-children{flex-direction:column;display:flex}.mobile-menu-item-child{padding-left:var(--space-16)}.mobile-menu-footer{border-top:1px solid var(--border-default);flex-shrink:0;padding:8px 0}.sangam-shift{gap:var(--space-5);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.sangam-shift-toolbar{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.shift-perm-note{align-items:center;gap:var(--space-3);margin:var(--space-3) 0;flex-wrap:wrap;display:flex}.shift-perm-note-text{font-size:var(--text-sm);color:var(--color-text-muted);word-break:keep-all}.sangam-shift-title{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text);text-align:center;min-width:110px}.sangam-shift-legend{gap:var(--space-6);flex-wrap:wrap;margin-left:auto;display:flex}.sangam-shift-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.sangam-shift-legend-item{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);display:inline-flex}.sangam-shift-legend-item small{color:var(--color-text-faint);font-size:var(--text-xs)}.sangam-shift-chip-color{width:var(--space-5);height:var(--space-5);border-radius:2px;display:inline-block}.sangam-shift-loading{font-size:var(--text-xs);color:var(--color-text-faint)}.sangam-shift-scroll{cursor:grab;-webkit-user-select:none;user-select:none;background:linear-gradient(90deg,#0000 0 calc(100% - 32px),#0f172a0f 100%) 100% 0/32px 100% no-repeat}.sangam-shift-scroll:active{cursor:grabbing}.sangam-shift-scroll input,.sangam-shift-scroll select{-webkit-user-select:auto;user-select:auto}.sangam-shift-cell-content{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-4);border-radius:var(--radius-sm);font-weight:var(--weight-bold);font-size:var(--text-xs);line-height:var(--leading-tight);min-width:var(--space-14);white-space:nowrap;display:inline-flex}.sangam-shift-cell-code{white-space:nowrap}.sangam-shift-cell-memo{color:var(--amber-500);font-weight:var(--weight-bold);font-size:var(--text-base)}.sangam-shift-cell.selected{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset-inset);z-index:1;position:relative}.sangam-shift-picker{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-xl);z-index:var(--z-dropdown);max-height:calc(100dvh - 40px);position:fixed;overflow-y:auto}@supports not (height:100dvh){.sangam-shift-picker{max-height:calc(100vh - 40px)}}.sangam-shift-picker-head{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text);padding-bottom:var(--space-3);margin-bottom:var(--space-4);border-bottom:1px solid #f1f5f9}.sangam-shift-picker-section{font-size:var(--text-2xs);font-weight:var(--weight-bold);color:var(--color-text-faint);text-transform:uppercase;margin:6px 0 4px}.sangam-shift-picker-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(80px,1fr));display:grid}.sangam-shift-pick{justify-content:center;align-items:center;gap:var(--space-1);border-radius:var(--radius-md);padding:var(--space-4) var(--space-2);font-size:var(--text-xs);cursor:pointer;background:var(--bg-app);border:1px solid;flex-direction:column;display:flex}.sangam-shift-pick.clear{background:var(--bg-app);border-color:var(--border-strong);color:var(--color-text-faint)}.sangam-shift-pick:hover,.sangam-shift-pick:focus-visible{transform:translateY(var(--lift-y))}.sangam-shift-pick:disabled{opacity:var(--disabled-opacity);cursor:wait}.sangam-shift-pick-code{font-weight:var(--weight-bold);font-size:var(--text-base);color:var(--color-text)}.sangam-shift-pick-label{font-size:var(--text-2xs);color:var(--color-text-muted);word-break:keep-all;overflow-wrap:break-word;text-align:center;line-height:var(--leading-tight)}.sangam-shift-pick.selected .sangam-shift-pick-code,.sangam-shift-pick.selected .sangam-shift-pick-label{color:var(--color-text-on-accent)}.sangam-shift-memo-section{margin-top:var(--space-5)}.sangam-shift-memo-label{font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2);display:block}.sangam-shift-memo-hint{color:var(--color-text-faint);font-weight:var(--weight-normal)}.sangam-shift-memo-textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);resize:vertical;font-family:inherit}@media (width<=640px){.sangam-shift-toolbar{gap:var(--space-3);flex-wrap:wrap}.sangam-shift-title{min-width:auto;font-size:var(--text-md)}.sangam-shift-legend{gap:var(--space-3);width:100%;font-size:var(--text-xs);flex-wrap:wrap;order:10;margin-left:0}.sangam-shift-actions{margin-left:auto}.sangam-shift-legend small{display:none}.sangam-shift-table{font-size:var(--text-xs)}.sangam-shift-shift-col{min-width:70px;max-width:70px;font-size:var(--text-xs);padding:8px!important}.sangam-shift-shift-label{font-size:var(--text-sm)}.sangam-shift-shift-time{font-size:var(--text-3xs)}.sangam-shift-date-col,.sangam-shift-cell{min-width:var(--space-14);max-width:var(--space-14);padding:4px 2px!important}.sangam-shift-date-num{font-size:var(--text-sm)}.sangam-shift-date-dow{font-size:var(--text-3xs)}.sangam-shift-entry{padding:0}.sangam-shift-entry-name{font-size:var(--text-3xs)}.sangam-shift-absence-tag{font-size:var(--text-3xs);padding:0 4px}.sangam-shift-modal{border-radius:0;height:100%;max-height:100%;margin:0;width:100%!important;max-width:100%!important}.sangam-cell-editor-row{gap:var(--space-2);flex-wrap:wrap}.sangam-cell-editor-row select,.sangam-cell-editor-row input{font-size:var(--text-sm)}.sangam-cell-editor-row input[type=text]{flex:100px}.sangam-guidelines-body{gap:var(--space-5);grid-template-columns:1fr}.sangam-shift-shift-col{min-width:56px;max-width:56px;font-size:var(--text-xs)}.sangam-shift-date-col,.sangam-shift-cell{min-width:24px;max-width:24px}.sangam-shift-cell{height:var(--space-14);min-height:var(--space-14);font-size:var(--text-3xs)}}.sangam-shift-scroll{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-app);overflow-x:auto}.sangam-shift-table{border-collapse:collapse;font-size:var(--text-sm);table-layout:fixed;width:100%;min-width:1100px}@media (width>=641px) and (width<=1024px){.sangam-shift-table{min-width:auto;font-size:var(--text-xs)}.sangam-shift-shift-col{min-width:64px;max-width:72px;padding:6px!important}.sangam-shift-toolbar{gap:var(--space-5);row-gap:var(--space-3)}.sangam-shift-actions{margin-left:auto}.sangam-shift-title{min-width:90px;font-size:var(--text-sm)}}.sangam-shift-table th,.sangam-shift-table td{border:1px solid var(--border-default);text-align:center;vertical-align:middle;padding:0}.sangam-shift-shift-col{z-index:4;background:var(--bg-panel);font-weight:var(--weight-semibold);color:var(--color-text-muted);text-align:center;min-width:80px;max-width:80px;position:sticky;left:0;box-shadow:2px 0 4px -2px #0f172a14;border-right:2px solid var(--border-strong)!important;padding:10px!important}.sangam-shift-table thead .sangam-shift-shift-col{z-index:5;top:0}.sangam-shift-shift-label{font-weight:var(--weight-bold);font-size:var(--text-base);color:var(--color-text)}.sangam-shift-shift-time{font-size:var(--text-3xs);color:var(--color-text-muted)}.sangam-shift-date-col{z-index:3;background:var(--bg-panel);min-width:34px;color:var(--color-text-muted);position:sticky;top:0;padding:6px 4px!important}.sangam-shift-date-col.sun{color:var(--color-danger);font-weight:var(--weight-bold)}.sangam-shift-date-col.sat{color:var(--color-accent);font-weight:var(--weight-bold)}.sangam-shift-date-col.sun .sangam-shift-date-dow:after{content:"●";margin-left:var(--space-1);vertical-align:1px;font-size:.9em}.sangam-shift-date-col.sat .sangam-shift-date-dow:after{content:"◇";margin-left:var(--space-1);font-size:1em}.sangam-shift-date-col.today{background:var(--accent-50);border-bottom:2px solid var(--accent-500)!important}.sangam-shift-date-col.has-holiday{background:var(--bg-danger)}.sangam-shift-date-num{font-weight:var(--weight-bold);font-size:var(--text-base)}.sangam-shift-date-dow{font-size:var(--text-3xs);color:var(--color-text-muted)}.sangam-shift-cell{min-width:34px;height:var(--space-18);background:var(--bg-app);font-size:var(--text-xs);color:var(--color-text);cursor:default;position:relative}.sangam-shift-memo-dot{width:var(--space-3);height:var(--space-3);background:var(--accent-500);border-radius:var(--radius-full);box-shadow:0 0 0 1.5px var(--bg-app);pointer-events:auto;cursor:help;position:absolute;top:2px;right:2px}.sangam-shift-cell.editable{cursor:pointer}.sangam-shift-cell.editable:hover,.sangam-shift-cell.editable:focus-visible{outline:2px solid var(--accent-500);outline-offset:-2px}.sangam-shift-cell.sun{background:#fef2f2}.sangam-shift-cell.sat{background:var(--accent-50)}.sangam-shift-cell.today{box-shadow:inset 0 -2px 0 var(--accent-500)}.sangam-shift-cell.selected{outline:2px solid var(--amber-500);outline-offset:-2px}.sangam-shift-cell.dimmed{opacity:.2;filter:saturate(.3)}.sangam-shift-cell.dimmed:hover,.sangam-shift-cell.dimmed:focus-visible{opacity:.5}.sangam-shift-scroll[data-density=wide] .sangam-shift-cell{height:44px;font-size:var(--text-sm)}.sangam-shift-scroll[data-density=wide] .sangam-shift-cell-content{padding:var(--space-1) var(--space-4);min-width:var(--space-14)}.sangam-shift-scroll[data-density=wide] .sangam-shift-cell-code{font-size:var(--text-sm)}.sangam-shift-table tr.is-me-row .sangam-shift-shift-col{color:#075985;font-weight:var(--weight-extrabold);box-shadow:inset 3px 0 0 var(--accent-500), 2px 0 4px -2px #0f172a14;background:#e0f2fe}.sangam-shift-table tr.is-me-row>.sangam-shift-cell,.sangam-shift-table tr.is-me-row>.sangam-shift-shift-col{border-top:1.5px solid #60a5fa;border-bottom:1.5px solid #60a5fa}.sangam-shift-entry{align-items:center;gap:var(--space-1);padding:1px 0;display:inline-flex}.sangam-shift-entry-name{font-weight:var(--weight-semibold)}.sangam-shift-entry-memo{color:var(--amber-500);font-weight:var(--weight-bold);font-size:var(--text-base);cursor:help}.sangam-guidelines{margin-top:var(--space-6);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-app);overflow:hidden}.sangam-guidelines-toggle{text-align:left;width:100%;padding:var(--space-4) var(--space-6);background:var(--bg-panel);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);cursor:pointer;border:none}.sangam-guidelines-toggle:hover,.sangam-guidelines-toggle:focus-visible{background:var(--bg-header)}.sangam-guidelines-body{padding:var(--space-5) var(--space-7) var(--space-7);border-top:1px solid var(--border-default);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 18px;display:grid}.sangam-guidelines-section strong{font-size:var(--text-sm);color:var(--color-text);margin-bottom:var(--space-2);display:block}.sangam-guidelines-section ul{padding-left:var(--space-7);font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-normal);margin:0;list-style:outside}.sangam-shift-modal{width:540px;max-width:95vw}.sangam-cell-editor{gap:var(--space-7);flex-direction:column;display:flex}.sangam-cell-editor-section{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text-muted);margin-bottom:var(--space-2)}.sangam-cell-editor-empty{font-size:var(--text-sm);color:var(--color-text-faint);padding:6px 0}.sangam-cell-editor-row{gap:var(--space-3);margin-bottom:var(--space-2);align-items:center;display:flex}.sangam-cell-editor-row select,.sangam-cell-editor-row input{height:var(--space-15);padding:var(--space-2) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm)}.sangam-cell-editor-row select{min-width:100px}.sangam-cell-editor-row input[type=text]{flex:1;min-width:0}.sangam-cell-editor-row .btn{padding:var(--space-2) var(--space-5);font-size:var(--text-sm)}@keyframes header-popover-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.notification-dropdown,.user-menu-dropdown{transform-origin:100% 0;animation:header-popover-in var(--t-base)}@media (prefers-reduced-motion:reduce){.notification-dropdown,.user-menu-dropdown{animation:none}}.confirm-dialog-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal-elevated);padding:var(--space-6);animation:confirm-fade-in var(--t-fast);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes confirm-fade-in{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--bg-app);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);min-width:320px;max-width:min(480px, calc(100vw - var(--space-12)));border-top:4px solid var(--color-text-faint);animation:confirm-pop-in var(--t-base);overflow:hidden}@keyframes confirm-pop-in{0%{opacity:0;transform:scale(.96)translateY(4px)}to{opacity:1;transform:none}}@keyframes confirm-fade-out{0%{opacity:1}to{opacity:0}}@keyframes confirm-pop-out{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.96)translateY(4px)}}.confirm-dialog-backdrop.exiting{animation:confirm-fade-out var(--t-fast) forwards;pointer-events:none}.confirm-dialog.exiting{animation:confirm-pop-out var(--t-base) forwards}@media (prefers-reduced-motion:reduce){.confirm-dialog-backdrop.exiting,.confirm-dialog.exiting{opacity:0;animation:none}}.confirm-dialog-info{border-top-color:var(--color-accent)}.confirm-dialog-warning{border-top-color:var(--color-warning)}.confirm-dialog-danger{border-top-color:var(--color-danger)}.confirm-dialog-body{padding:var(--space-8) var(--space-8) var(--space-6)}.confirm-dialog-message{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text);line-height:var(--leading-normal);white-space:pre-wrap;word-break:keep-all}.confirm-dialog-detail{margin-top:var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal);white-space:pre-wrap;word-break:keep-all}.confirm-dialog-require{margin-top:var(--space-6);gap:var(--space-3);flex-direction:column;display:flex}.confirm-dialog-require label{font-size:var(--text-xs);color:var(--color-text-muted)}.confirm-dialog-require code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:var(--text-sm);background:var(--bg-panel);padding:1px var(--space-3);border-radius:var(--radius-xs);color:var(--color-danger);font-weight:var(--weight-bold)}.confirm-dialog-require input{font-size:var(--text-sm);padding:var(--space-3) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-sm);outline:none;font-family:ui-monospace,SFMono-Regular,monospace}.confirm-dialog-require input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--accent-glow-mid)}.confirm-dialog-footer{padding:var(--space-5) var(--space-8) var(--space-6);background:var(--bg-panel);border-top:1px solid var(--border-default);gap:var(--space-3);justify-content:flex-end;display:flex}.confirm-dialog-btn{font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:var(--space-3) var(--space-7);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--t-base), border-color var(--t-base);border:1px solid #0000;min-width:72px}.confirm-dialog-btn:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.confirm-dialog-btn-cancel{background:var(--bg-app);color:var(--color-text-muted);border-color:var(--border-default)}.confirm-dialog-btn-cancel:hover:not(:disabled),.confirm-dialog-btn-cancel:focus-visible:not(:disabled){background:var(--bg-panel);color:var(--color-text);border-color:var(--border-strong)}.confirm-dialog-btn-confirm{color:var(--color-text-on-accent)}.confirm-dialog-btn-info{background:var(--color-accent)}.confirm-dialog-btn-warning{background:var(--color-warning)}.confirm-dialog-btn-danger{background:var(--color-danger)}.confirm-dialog-btn-info:hover:not(:disabled),.confirm-dialog-btn-info:focus-visible:not(:disabled){background:var(--accent-600)}.confirm-dialog-btn-warning:hover:not(:disabled),.confirm-dialog-btn-warning:focus-visible:not(:disabled){background:var(--amber-600)}.confirm-dialog-btn-danger:hover:not(:disabled){background:var(--red-600)}.confirm-dialog-btn-confirm:focus-visible{outline:3px solid var(--accent-glow-mid);outline-offset:1px}@media (width<=640px){.confirm-dialog{width:100%;min-width:0}.confirm-dialog-footer{flex-direction:column-reverse}.confirm-dialog-btn{width:100%}}.kbd-modal-backdrop{background:var(--modal-backdrop);-webkit-backdrop-filter:blur(var(--modal-blur));z-index:var(--z-modal-elevated);padding:var(--space-6);animation:confirm-fade-in var(--t-fast);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.kbd-modal{background:var(--bg-app);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);border-top:4px solid var(--color-accent);width:100%;max-width:720px;max-height:var(--modal-max-h);animation:confirm-pop-in var(--t-base);flex-direction:column;display:flex;overflow:hidden}.kbd-modal-head{align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-7);border-bottom:1px solid var(--border-default);color:var(--color-text);font-size:var(--text-md);display:flex}.kbd-modal-head strong{font-weight:var(--weight-semibold);flex:1}.kbd-modal-close{border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);cursor:pointer;color:var(--color-text-muted);transition:background var(--t-base), color var(--t-base);background:0 0}.kbd-modal-close:hover,.kbd-modal-close:focus-visible{background:var(--bg-panel);color:var(--color-text)}.kbd-modal-body{padding:var(--space-6) var(--space-7);gap:var(--space-7);grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow-y:auto}@media (width<=640px){.kbd-modal-body{gap:var(--space-6);grid-template-columns:1fr}}.kbd-section h3{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin-bottom:var(--space-3);text-transform:none}.kbd-section ul{gap:var(--space-3);flex-direction:column;padding:0;list-style:none;display:flex}.kbd-section li{gap:var(--space-5);grid-template-columns:minmax(0,auto) 1fr;align-items:center;display:grid}.kbd-keys{align-items:center;gap:var(--space-2);white-space:nowrap;flex-wrap:wrap;display:inline-flex}.kbd-sep{color:var(--color-text-faint);font-size:var(--text-xs);margin:0 var(--space-1)}.kbd-section kbd,.kbd-modal-foot kbd{font-family:ui-monospace,SFMono-Regular,monospace;font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text);background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:2px var(--space-3);min-width:var(--space-11);text-align:center;line-height:var(--leading-snug);border-bottom-width:2px;display:inline-block}.kbd-desc{font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-snug)}.kbd-modal-foot{padding:var(--space-4) var(--space-7);background:var(--bg-panel);border-top:1px solid var(--border-default);justify-content:flex-end;display:flex}.kbd-modal-hint{font-size:var(--text-xs);color:var(--color-text-muted);align-items:center;gap:var(--space-2);display:inline-flex}.app-install-banner{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6);background:var(--accent-50);border-bottom:1px solid var(--accent-200);color:var(--accent-800);font-size:var(--text-sm);line-height:var(--leading-snug);display:flex}.app-install-banner-icon{color:var(--accent-600);flex:none}.app-install-banner-text{word-break:keep-all;overflow-wrap:break-word;flex:1}.app-install-banner-cta{padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-text-on-accent);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;cursor:pointer;border:none;flex:none}.app-install-banner-cta:hover,.app-install-banner-cta:focus-visible{background:var(--accent-700);outline:none}.app-install-banner-close{width:var(--space-12);height:var(--space-12);color:var(--accent-700);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.app-install-banner-close:before{content:"";position:absolute;inset:-10px}.app-install-banner-close:hover,.app-install-banner-close:focus-visible{background:color-mix(in srgb, var(--accent-700) 15%, transparent);outline:none}@media (width<=640px){.app-install-banner{padding:var(--space-3) var(--space-4);gap:var(--space-3);font-size:var(--text-xs)}}.app-install-modal{max-width:600px}.app-install-ver{color:var(--color-text-muted);font-weight:var(--weight-normal);font-size:var(--text-sm)}.app-install-body{gap:var(--space-6);word-break:keep-all;overflow-wrap:break-word;flex-direction:column;display:flex}.app-install-intro{font-size:var(--text-base);color:var(--color-text);line-height:var(--leading-normal)}.app-install-why{padding-left:var(--space-7);gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);flex-direction:column;margin:0;display:flex}.app-install-why li{line-height:var(--leading-snug)}.app-install-steps{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.app-install-steps li{align-items:flex-start;gap:var(--space-4);display:flex}.app-install-step-num{width:var(--space-11);height:var(--space-11);border-radius:var(--radius-full);background:var(--accent-100);color:var(--accent-800);font-size:var(--text-xs);font-weight:var(--weight-semibold);flex:none;justify-content:center;align-items:center;display:inline-flex}.app-install-step-text{font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-snug);flex:1;padding-top:2px}.app-install-step-desc{margin-top:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted);display:block}.app-install-note{padding:var(--space-4) var(--space-5);background:var(--bg-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-snug)}.app-install-url{gap:var(--space-2);flex-direction:column;display:flex}.app-install-url-label{font-size:var(--text-xs);color:var(--color-text-muted)}.app-install-url-row{gap:var(--space-3);display:flex}.app-install-url-row input{min-width:0;padding:var(--space-2) var(--space-4);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-panel);color:var(--color-text);font-family:ui-monospace,SFMono-Regular,monospace;font-size:var(--text-xs);flex:1}.app-install-copy{align-items:center;gap:var(--space-2);flex:none;display:inline-flex}.app-install-foot{align-items:center}.app-install-foot-hint{font-size:var(--text-xs);color:var(--color-text-muted)}.app-install-download{align-items:center;gap:var(--space-2);text-decoration:none;display:inline-flex}.state-block{padding:var(--space-15) var(--space-10);justify-content:center;align-items:center;gap:var(--space-4);text-align:center;font-size:var(--text-base);color:var(--color-text-muted);flex-wrap:wrap;animation:.24s cubic-bezier(.16,1,.3,1) state-block-fade-in;display:flex}@keyframes state-block-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.state-block{animation:none}}.state-block-compact{padding:var(--space-12) var(--space-6);font-size:var(--text-sm)}.state-block-icon{width:var(--space-18);height:var(--space-18);border-radius:var(--radius-pill);background:var(--accent-50);color:var(--accent-500);flex:none;justify-content:center;align-items:center;display:inline-flex}.state-block-compact .state-block-icon{width:var(--space-15);height:var(--space-15)}.state-block-message{font-weight:var(--weight-medium);display:inline-block}.state-block-hint{font-size:var(--text-sm);color:var(--color-text-faint);flex-basis:100%}.state-block-action{margin-left:var(--space-2);padding:var(--space-2) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-panel);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;transition:background var(--t-base), border-color var(--t-base), box-shadow var(--t-base), transform var(--t-fast)}.state-block-action:hover{background:linear-gradient(180deg, var(--accent-50) 0%, var(--bg-panel) 100%);border-color:var(--accent-500);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.state-block-action:focus-visible{border-color:var(--accent-500);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-500) 25%, transparent);outline:none}.state-block-error .state-block-icon{background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.state-block-empty{color:var(--color-text-muted)}.state-block-loading{color:var(--color-text-faint)}.state-block-error{color:var(--red-600)}.health-dashboard-grid{gap:var(--space-6);margin-top:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));display:grid}.health-attention{margin-top:var(--space-6);padding:var(--space-5) var(--space-6);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);border-left-width:3px}.health-attention-red{border-left-color:var(--color-danger)}.health-attention-yellow{border-left-color:var(--amber-500)}.health-attention-head{align-items:center;gap:var(--space-2);font-size:var(--text-base);color:var(--color-text);display:flex}.health-attention-head svg{color:var(--color-danger);flex-shrink:0}.health-attention-head span{color:var(--color-text-muted);font-size:var(--text-sm)}.health-attention-list{margin:var(--space-4) 0 0;gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.health-attention-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);display:flex}.health-attention-item:hover{background:var(--bg-hover-neutral)}.health-attention-title{font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap}.health-attention-detail{min-width:0;color:var(--color-text-muted);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.health-attention-go{flex-shrink:0;margin-left:auto}.health-card{gap:var(--space-3);padding:var(--space-6) var(--space-7);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);text-align:left;cursor:pointer;transition:background var(--t-fast), transform var(--t-fast);border-left-width:3px;flex-direction:column;font-family:inherit;display:flex}.health-card:hover{background:var(--bg-hover-neutral)}.health-card:active{transform:scale(.99)}.health-card-green{border-left-color:var(--color-success)}.health-card-yellow{border-left-color:var(--amber-500)}.health-card-red{border-left-color:var(--color-danger)}.health-card-head{align-items:center;gap:var(--space-3);font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);display:flex}.health-card-icon{color:var(--color-text-muted);align-items:center;display:inline-flex}.health-card-title{flex:1}.health-card-detail{font-size:var(--text-sm);color:var(--color-text-muted);align-items:center;gap:var(--space-2);display:flex}.health-card-red .health-card-detail{color:var(--red-600);font-weight:var(--weight-medium)}.health-card-sub{font-size:var(--text-xs);color:var(--color-text-faint)}.health-badge{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-semibold);border:1px solid;display:inline-flex}.health-badge-dot{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-pill)}.mobile-bottom-nav{z-index:90;background:var(--bg-app);border-top:1px solid var(--border-default);padding-bottom:env(safe-area-inset-bottom,0);box-shadow:var(--shadow-md);display:flex;position:fixed;bottom:0;left:0;right:0}@media (width>=641px){.mobile-bottom-nav{display:none}}.mobile-bottom-tab{align-items:center;gap:var(--space-1);padding:var(--space-4) var(--space-1) var(--space-3);color:var(--color-text-faint);font-family:inherit;font-size:var(--text-2xs);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;display:flex}.mobile-bottom-tab.active{color:var(--color-text)}.mobile-bottom-tab.active .mobile-bottom-tab-icon{color:var(--color-accent)}.mobile-bottom-tab-icon{width:var(--space-12);height:var(--space-12);justify-content:center;align-items:center;display:inline-flex;position:relative}.mobile-bottom-tab-label{font-weight:var(--weight-medium);letter-spacing:-.02em}.mobile-bottom-tab-badge{min-width:14px;height:var(--space-7);border-radius:var(--radius-pill);color:var(--color-text-on-accent);font-size:var(--text-3xs);font-weight:var(--weight-bold);line-height:var(--leading-none);background:#ef4444;justify-content:center;align-items:center;padding:0 3px;display:flex;position:absolute;top:-3px;right:-8px}@media (width<=640px){body{padding-bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom,0))}}@media (width>=641px) and (width<=1024px){.home-page{padding:var(--space-8) var(--space-8) var(--space-16);gap:var(--space-7)}.dr-body .dr-list{width:280px;min-width:240px}.calendar-page-header{padding:10px 16px 0}}@media (width>=1440px){.home-page{padding:24px 48px 48px}.dr-body .dr-list{width:400px;min-width:360px}.bk-page,.maint-stats-page{max-width:var(--page-max-wide)}}html{word-break:keep-all;overflow-wrap:break-word}pre,code,kbd,samp{word-break:normal;overflow-wrap:normal}.shift-matrix-monthly-cards{gap:var(--space-4);display:grid}.shift-matrix-monthly-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-app);padding:var(--space-5) var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.shift-matrix-monthly-card.is-mine{border-color:var(--color-accent);background:#f0f9ff}.shift-matrix-monthly-card-head{align-items:center;gap:var(--space-4);display:flex}.shift-matrix-monthly-card-head strong{font-size:var(--text-md);color:var(--color-text)}.shift-matrix-monthly-card-weekend{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-1) var(--space-4);border-radius:var(--radius-pill);background:var(--bg-header);margin-left:auto}.shift-matrix-monthly-card-weekend strong{font-size:var(--text-base);color:var(--color-text);margin-left:var(--space-1)}.shift-matrix-monthly-card-weekend.high{background:var(--bg-danger);color:var(--red-600)}.shift-matrix-monthly-card-weekend.high strong{color:var(--color-danger)}.shift-matrix-monthly-card-weekend.low{color:#1d4ed8;background:#dbeafe}.shift-matrix-monthly-card-weekend.low strong{color:#1e40af}.shift-matrix-monthly-card-bar .bar-track{width:100%;height:var(--space-3);background:var(--bg-header);border-radius:var(--radius-xs);display:block;overflow:hidden}.shift-matrix-monthly-card-bar .bar-fill{height:100%;transition:width var(--t-slow);background:#f87171;display:block}.shift-matrix-monthly-card-bar .bar-fill.high{background:var(--color-danger)}.shift-matrix-monthly-card-bar .bar-fill.low{background:#93c5fd}.shift-matrix-monthly-card-grid{gap:var(--space-3);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=640px){.shift-matrix-monthly-card-grid{grid-template-columns:repeat(2,1fr)}}.shift-matrix-monthly-stat{background:var(--bg-panel);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);text-align:center;align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.shift-matrix-monthly-stat .stat-label{font-size:var(--text-3xs);color:var(--color-text-muted)}.shift-matrix-monthly-stat .stat-value{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text)}.shift-matrix-monthly-stat.empty .stat-value{color:var(--color-text-faint);font-weight:var(--weight-medium)}.shift-matrix-monthly-stat .bar-track{width:100%;height:var(--space-2);background:var(--bg-header);margin-top:var(--space-1);border-radius:2px;display:block;overflow:hidden}.shift-matrix-monthly-stat .bar-fill{background:#f87171;height:100%;display:block}.shift-matrix-monthly-stat .bar-fill.leave{background:var(--amber-400)}.draft-recovery-banner{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-2);background:var(--bg-warning);border:1px solid color-mix(in srgb, var(--color-warning) 30%, transparent);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text);display:flex}.draft-recovery-banner svg{color:var(--color-warning);flex-shrink:0}.draft-recovery-banner-text{word-break:keep-all;overflow-wrap:break-word;flex:1}.ui-iconbtn{border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast);border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.ui-iconbtn:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.ui-iconbtn:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.ui-iconbtn:hover:not(:disabled),.ui-iconbtn:focus-visible:not(:disabled){background:var(--bg-hover-neutral);color:var(--color-text)}.ui-iconbtn-xs{width:var(--space-10);height:var(--space-10)}.ui-iconbtn-sm{width:var(--space-14);height:var(--space-14)}.ui-iconbtn-md{width:var(--space-16);height:var(--space-16)}.ui-iconbtn-default{background:var(--bg-app);border-color:var(--border-default)}.ui-iconbtn-ghost{background:0 0;border-color:#0000}.ui-iconbtn-danger:hover:not(:disabled),.ui-iconbtn-danger:focus-visible:not(:disabled){background:var(--bg-hover-danger);color:var(--color-danger);border-color:var(--color-danger)}.sangam-typemgr-modal{max-width:560px;width:calc(100vw - var(--space-8) * 2)}.sangam-typemgr-body{gap:var(--space-3);flex-direction:column;display:flex}.sangam-typemgr-hint,.sangam-typemgr-note{font-size:var(--text-sm);color:var(--color-text-muted);word-break:keep-all;margin:0}.sangam-typemgr-note{margin-top:var(--space-4)}.sangam-typemgr-group{align-items:center;gap:var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-semibold);margin:var(--space-6) 0 var(--space-2);display:flex}.sangam-typemgr-add{margin-left:auto}.sangam-typemgr-empty{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}.sangam-typemgr-row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.sangam-typemgr-code{text-align:center;min-width:34px;font-weight:var(--weight-semibold);font-size:var(--text-sm)}.sangam-typemgr-input{min-height:34px;padding:var(--input-pad-y-sm) var(--input-pad-x-sm);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-sm);background:var(--bg-panel);color:var(--color-text)}.sangam-typemgr-input.code{width:64px}.sangam-typemgr-input.label{flex:1;min-width:110px}.sangam-typemgr-input.time{text-align:center;width:72px}.sangam-typemgr-tilde{color:var(--color-text-muted)}.sangam-typemgr-color{width:34px;height:34px;padding:var(--space-1);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-panel);cursor:pointer}.sangam-typemgr-flex{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;display:inline-flex}.sangam-typemgr-del{flex-shrink:0}.sangam-typemgr-foot{justify-content:flex-end;gap:var(--space-3);display:flex}@media (width<=640px){.sangam-typemgr-input{min-height:var(--tap-min)}.sangam-typemgr-color{width:var(--tap-min);height:var(--tap-min)}.sangam-typemgr-del{min-width:var(--tap-min);min-height:var(--tap-min)}}.rcp-sig-cell-cat-chip{text-align:center;color:#fff;letter-spacing:.04em;text-shadow:0 1px 1px #00000040;white-space:nowrap;text-overflow:ellipsis;border-radius:4px;justify-content:center;align-items:center;min-height:18px;padding:3px 6px;font-size:10px;font-weight:700;display:inline-flex;overflow:hidden;box-shadow:0 1px 2px #0000001a}.rcp-edit-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.rcp-edit-field{flex-direction:column;gap:4px;display:flex}.rcp-edit-field>span{color:var(--color-text-muted);font-size:12px;font-weight:600}.rcp-edit-field input,.rcp-edit-field textarea,.rcp-edit-field select{padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:14px}.rcp-edit-field textarea{resize:vertical;font-family:inherit;line-height:1.5}.rcp-edit-err{color:var(--color-danger);margin:0;font-size:13px}.rcp-edit-foot{justify-content:flex-end;gap:var(--space-2);display:flex}.rcp-bulk-modal{width:100%;max-width:min(960px,100%)}.rcp-bulk-body{gap:var(--space-3);flex-direction:column;display:flex}.rcp-bulk-file{align-items:center;gap:var(--space-3);display:flex}.rcp-bulk-filename{color:var(--color-text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.rcp-bulk-summary{background:var(--color-surface-sunken);border-radius:var(--radius-sm);color:var(--color-text);margin:0;padding:8px 12px;font-size:12px}.rcp-bulk-summary strong{color:var(--color-text);font-variant-numeric:tabular-nums}.rcp-bulk-valid{color:var(--color-green-700,#15803d)}.rcp-bulk-invalid{color:var(--color-red-700,#b91c1c)}.rcp-bulk-preview-wrap{border:1px solid var(--color-border);border-radius:var(--radius-sm);max-height:380px;overflow:auto}.rcp-bulk-preview{border-collapse:collapse;width:100%;font-size:11px}.rcp-bulk-preview th{background:var(--color-surface-sunken);text-align:left;border-bottom:1px solid var(--color-border);padding:6px 8px;font-weight:700;position:sticky;top:0}.rcp-bulk-preview td{border-bottom:1px solid var(--color-border-subtle,var(--color-border));white-space:nowrap;text-overflow:ellipsis;max-width:200px;padding:4px 8px;overflow:hidden}.rcp-bulk-row-invalid{background:var(--color-red-50,#fef2f2);color:var(--color-text-muted)}.rcp-bulk-empty{text-align:center;padding:var(--space-6) var(--space-3);background:var(--color-surface-sunken);border:2px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted)}.rcp-bulk-empty>svg{color:var(--color-text-faint);margin-bottom:var(--space-2)}.rcp-bulk-empty-title{color:var(--color-text);margin:0;font-size:14px;font-weight:600}.rcp-bulk-empty-hint{margin:4px 0 var(--space-3);font-size:12px}.rcp-bulk-empty-example{text-align:left;font-size:11px;display:inline-block}.rcp-bulk-empty-example summary{cursor:pointer;color:var(--color-accent-600,#0284c7);margin-bottom:var(--space-2);font-weight:600}.rcp-bulk-empty-example pre{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);color:var(--color-text);white-space:pre;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;overflow-x:auto}.rcp-bulk-more{color:var(--color-text-muted);margin:8px 0 0;font-size:11px;font-style:italic}.rcp-category-labels-toolbar{gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap;align-items:center;display:flex}.rcp-category-labels-search{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);flex:240px;align-items:center;gap:6px;min-width:200px;padding:4px 10px;display:flex}.rcp-category-labels-search input{color:var(--color-text);background:0 0;border:0;flex:1;padding:4px 0;font-family:inherit;font-size:13px}.rcp-category-labels-search input:focus-visible{outline:0}.rcp-category-labels-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.rcp-category-labels-list{margin:var(--space-3) 0 0;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px;padding:0;list-style:none;display:grid}.rcp-category-labels-row{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);align-items:center;gap:8px;padding:6px 10px;display:flex}.rcp-category-labels-row input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);flex:1;padding:4px 8px;font-family:inherit;font-size:13px}.rcp-category-labels-row input:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:1px;border-color:var(--color-accent-500)}.rcp-category-labels-row input:placeholder-shown{color:var(--color-text-muted)}.qs-loading,.qs-empty{padding:var(--space-6);text-align:center;color:var(--color-text-muted);font-size:var(--text-base);background:var(--bg-panel);border-radius:var(--radius-lg);margin-top:var(--space-3)}.qs-admin-toggles{margin:var(--space-3) 0}.qs-admin-toggle{align-items:center;gap:var(--space-3);font-size:var(--text-base);cursor:pointer;display:flex}.qs-admin-grid{gap:var(--space-3);margin:var(--space-3) 0;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.qs-admin-field{padding:var(--space-3);border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-panel)}.qs-admin-field-head{gap:var(--space-1);margin-bottom:var(--space-2);flex-direction:column;display:flex}.qs-admin-field-head strong{font-size:var(--text-base)}.qs-admin-field-help{font-size:var(--text-xs);color:var(--color-text-muted)}.qs-admin-chip-list{margin:0 0 var(--space-2);gap:var(--space-2);flex-wrap:wrap;padding:0;list-style:none;display:flex}.qs-admin-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4);background:var(--bg-row-alt);border:1px solid var(--border-default);border-radius:var(--radius-pill);font-size:var(--text-sm);display:inline-flex}.qs-admin-chip-x{cursor:pointer;color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-full);background:0 0;border:none;align-items:center;display:inline-flex}.qs-admin-chip-x:hover{color:var(--color-danger)}.qs-admin-chip-empty{font-size:var(--text-sm);color:var(--color-text-muted);padding:var(--space-2)}.qs-admin-field-add{gap:var(--space-2);display:flex}.qs-admin-field-add input{padding:var(--space-2) var(--space-4);font-size:var(--text-base);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-app);color:var(--color-text);flex:1}.qs-admin-alias{margin-top:var(--space-2)}.qs-admin-alias-table{border-collapse:collapse;width:100%;font-size:var(--text-base);margin-bottom:var(--space-2)}.qs-admin-alias-table th,.qs-admin-alias-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-default);text-align:left}.qs-admin-alias-add{gap:var(--space-2);align-items:center;display:flex}.qs-admin-alias-add input{padding:var(--space-2) var(--space-4);font-size:var(--text-base);border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-app);color:var(--color-text);flex:1}.qs-admin-alias-add span{color:var(--color-text-muted)}@media (width<=640px){.qs-admin-grid{grid-template-columns:1fr}.qs-admin-alias-add{flex-wrap:wrap}}.network-ip-table-wrap{border:1px solid var(--border-default);border-radius:var(--radius-md,6px);background:var(--bg-app);overflow-x:auto}.network-ip-subnet-table-scroll{overflow-x:auto}.network-ip-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--text-sm)}.network-ip-table thead th{z-index:1;background:var(--bg-header);text-align:left;font-weight:var(--weight-medium);color:var(--color-text-muted);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-default);white-space:nowrap;-webkit-user-select:none;user-select:none;position:sticky;top:0}.network-ip-table th.is-sortable{cursor:pointer}.network-ip-table th.is-sortable:hover{color:var(--color-text);background:var(--slate-200)}.network-ip-table th .sort-indicator{vertical-align:middle;opacity:.3;margin-left:4px;transition:opacity 80ms,transform .12s;display:inline-flex}.network-ip-table th.is-sorted .sort-indicator{opacity:1;color:var(--color-accent)}.network-ip-table th.is-sorted-desc .sort-indicator{transform:scaleY(-1)}.network-ip-table tbody tr{border-bottom:1px solid var(--slate-100);cursor:pointer;transition:background-color 80ms,box-shadow 80ms}.network-ip-table tbody tr:nth-child(2n){background:var(--bg-row-alt)}.network-ip-table tbody tr:hover{background:var(--bg-hover);box-shadow:inset 3px 0 0 var(--color-accent)}.network-ip-table tbody tr:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.network-ip-table tbody tr.is-readonly{opacity:.78}.network-ip-table tbody tr.is-readonly:hover{background:var(--bg-hover-neutral);box-shadow:inset 3px 0 0 var(--color-text-muted)}.network-ip-table td{padding:var(--space-2) var(--space-3);white-space:nowrap;vertical-align:middle}.network-ip-table td.col-name{font-weight:var(--weight-semibold);color:var(--color-text)}.network-ip-table td.col-ip{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.network-ip-table td.col-mac{font-family:var(--font-mono);color:var(--color-text-muted);font-size:var(--text-xs)}.network-ip-table td.col-note{text-overflow:ellipsis;max-width:220px;color:var(--color-text-muted);overflow:hidden}.network-ip-table td.col-updated{color:var(--color-text-muted);font-size:var(--text-xs)}.network-ip-empty-cell{color:var(--color-text-faint)}.network-ip-row-action{opacity:0;color:var(--color-accent);font-size:var(--text-xs);align-items:center;gap:4px;transition:opacity 80ms;display:inline-flex}.network-ip-table tbody tr:hover .network-ip-row-action,.network-ip-table tbody tr:focus-visible .network-ip-row-action{opacity:1}@media (hover:none){.network-ip-row-action{opacity:.6}}.network-ip-table tbody tr.is-readonly .network-ip-row-action{color:var(--color-text-muted)}.network-ip-form{gap:var(--space-3);display:grid}.network-ip-form-section{gap:var(--space-2);display:grid}.network-ip-form-section+.network-ip-form-section{padding-top:var(--space-3);border-top:1px solid var(--slate-100);margin-top:var(--space-1)}.network-ip-form-section-title{font-size:var(--text-2xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.network-ip-form-row{align-items:center;gap:var(--space-3);grid-template-columns:96px 1fr;display:grid}.network-ip-form-row>label{font-size:var(--text-sm);color:var(--color-text-muted)}.network-ip-form-row input,.network-ip-form-row select,.network-ip-form-row textarea{width:100%;font-size:var(--text-sm);border:1px solid var(--border-default);background:var(--bg-app);color:var(--color-text);border-radius:4px;padding:6px 10px;font-family:inherit}.network-ip-form-row input.mono,.network-ip-form-row .mono{font-family:var(--font-mono)}.network-ip-form-row input:focus,.network-ip-form-row select:focus,.network-ip-form-row textarea:focus{outline:2px solid var(--color-accent);outline-offset:-1px;border-color:#0000}.network-ip-form-row input:disabled,.network-ip-form-row select:disabled,.network-ip-form-row textarea:disabled{background:var(--bg-panel);color:var(--color-text-muted);cursor:not-allowed}.network-ip-form-assign-toggle{background:var(--bg-panel);border-radius:6px;gap:4px;padding:2px;display:inline-flex}.network-ip-form-assign-toggle button{cursor:pointer;font-size:var(--text-sm);color:var(--color-text-muted);background:0 0;border:0;border-radius:4px;flex:1;padding:4px 12px}.network-ip-form-assign-toggle button.is-active{background:var(--bg-app);color:var(--color-text);font-weight:var(--weight-medium);box-shadow:0 1px 2px #0000000f}.network-ip-form-assign-toggle button:disabled{cursor:not-allowed;opacity:.5}.network-ip-form-meta{font-size:var(--text-xs);color:var(--color-text-muted);padding-top:var(--space-2)}@media (width<=640px){.network-ip-form-row{grid-template-columns:1fr;gap:4px}.network-ip-table td.col-note{max-width:140px}}.ui-grid{grid-template-columns:repeat(var(--ui-grid-cols-desktop,1), 1fr);gap:var(--ui-grid-gap,var(--space-6));display:grid}@media (width>=641px) and (width<=1024px){.ui-grid{grid-template-columns:repeat(var(--ui-grid-cols-tablet,var(--ui-grid-cols-desktop,1)), 1fr)}}@media (width<=640px){.ui-grid{grid-template-columns:repeat(var(--ui-grid-cols-mobile,1), 1fr)}}.ui-card{border-radius:var(--radius-lg);border:1px solid var(--border-default);background:var(--bg-panel);color:var(--color-text);transition:background var(--t-base), border-color var(--t-base), box-shadow var(--t-base)}.ui-card-tone-default{background:var(--bg-panel)}.ui-card-tone-subtle{background:var(--bg-row-alt);border-color:#0000}.ui-card-pad-md{padding:var(--space-8)}.ui-card-pad-sm{padding:var(--space-6)}.ui-card-interactive{cursor:pointer}.ui-card-interactive:hover{background:var(--bg-hover);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.ui-chip{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-6);border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--bg-panel);color:var(--color-text);font-size:var(--text-sm);line-height:var(--leading-tight);white-space:nowrap;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast);display:inline-flex}.ui-chip-icon{display:inline-flex}.ui-chip-label{align-items:center;display:inline-flex}.ui-chip-clickable{cursor:pointer;font-family:inherit}.ui-chip-clickable:hover,.ui-chip-clickable:focus-visible{background:var(--bg-hover);border-color:var(--border-strong)}@media (width<=640px),(pointer:coarse){.ui-chip-clickable{position:relative}.ui-chip-clickable:before{content:"";height:max(100%,32px);position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}}.ui-chip-tone-default{background:var(--bg-panel);color:var(--color-text)}.ui-chip-tone-muted{background:var(--bg-row-alt);color:var(--color-text-muted);border-color:#0000}.ui-chip-tone-accent{background:var(--bg-selected);color:var(--color-accent);border-color:#0000}.ui-chip-tone-success{background:var(--bg-success);color:var(--color-success);border-color:#0000}.ui-chip-tone-warning{background:var(--bg-warning);color:var(--color-warning);border-color:#0000}.ui-chip-tone-danger{background:var(--bg-danger);color:var(--color-danger);border-color:#0000}.ui-chip-active{background:var(--color-accent);color:var(--color-text-on-accent);border-color:var(--color-accent)}.ui-chip-active.ui-chip-clickable:hover{background:var(--accent-700);border-color:var(--accent-700)}.ui-chip-list{align-items:center;gap:var(--space-3);display:flex}.ui-chip-list-wrap{flex-wrap:wrap}.ui-collapsible{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-panel);overflow:hidden}.ui-collapsible-header{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-6) var(--space-8);color:var(--color-text);font-family:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold);text-align:left;cursor:pointer;transition:background var(--t-fast);background:0 0;border:0;display:flex}.ui-collapsible-header:hover{background:var(--bg-hover)}.ui-collapsible-chevron,.ui-collapsible-icon{color:var(--color-text-muted);display:inline-flex}.ui-collapsible-title{flex:1}.ui-collapsible-trailing{color:var(--color-text-muted);font-weight:var(--weight-normal);font-size:var(--text-sm)}.ui-collapsible-body{padding:var(--space-6) var(--space-8) var(--space-8);border-top:1px solid var(--border-default)}@media (width<=640px){.ui-collapsible-header{padding:var(--space-5) var(--space-6);font-size:var(--text-base)}.ui-collapsible-body{padding:var(--space-5) var(--space-6) var(--space-6)}}.ui-page-header{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-7) var(--space-4) var(--space-7) var(--space-8);background:linear-gradient(90deg, color-mix(in srgb, var(--accent-50) 80%, transparent) 0%, transparent 45%);border-left:3px solid var(--accent-500);border-radius:0 var(--radius-lg) var(--radius-lg) 0;margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.ui-page-header-main{align-items:center;gap:var(--space-4);min-width:0;display:flex}.ui-page-header-icon{color:var(--color-text-muted);flex:none;display:inline-flex}.ui-page-header-title{font-size:var(--text-3xl);font-weight:var(--weight-bold);color:var(--color-text);letter-spacing:-.01em;min-width:0;margin:0}.ui-page-header-subtitle{font-size:var(--text-sm);color:var(--color-text-muted);margin-left:var(--space-2)}.ui-page-header-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}@media (width<=640px){.ui-page-header{gap:var(--space-4);padding:var(--space-5) var(--space-3) var(--space-6) var(--space-6)}.ui-page-header-title{font-size:var(--text-2xl)}.ui-page-header-main{flex-wrap:wrap}.ui-page-header-subtitle{flex-basis:100%;margin-left:0}.ui-actions-mobile-even{width:100%}.ui-actions-mobile-even>*{flex:auto}.ui-actions-mobile-even>[role=group],.ui-actions-mobile-even>[role=tablist]{display:flex}.ui-actions-mobile-even>[role=group]>button,.ui-actions-mobile-even>[role=tablist]>button{flex:auto;justify-content:center}.ui-actions-mobile-even button,.ui-actions-mobile-even a,.ui-actions-mobile-even select{justify-content:center;min-height:44px}}.ui-page-shell{width:100%;padding-inline:var(--space-5);box-sizing:border-box;margin-inline:auto}.ui-page-shell-prose{max-width:min(72ch, var(--page-max-prose))}.ui-page-shell-wide{max-width:min(100%, var(--page-max-wide))}.ui-page-shell-full{max-width:100%}.ui-page-shell-pad-none{padding-inline:0}@media (width<=640px){.ui-page-shell{padding-inline:var(--space-4)}}.ui-search-field{align-items:center;gap:var(--space-3);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text);transition:border-color var(--t-fast), background var(--t-fast);display:inline-flex}.ui-search-block{width:100%;display:flex}.ui-search-md{padding:var(--input-pad-y-sm) var(--input-pad-x-sm);min-height:var(--space-18)}.ui-search-sm{padding:calc(var(--input-pad-y-sm) - 2px) var(--input-pad-x-sm);min-height:var(--space-15)}.ui-search-field:focus-within{border-color:var(--focus-ring-color);outline:var(--focus-ring);outline-offset:-1px;box-shadow:0 0 0 3px var(--accent-glow-soft)}.ui-search-disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.equip-table-search,.equip-hub-search{flex:auto;min-width:200px}.equip-empty{padding:var(--space-8) var(--space-4);text-align:center;font-size:var(--text-sm);color:var(--color-text-faint);word-break:keep-all}.projects-page-search{min-width:200px}@media (width<=640px){.projects-page-search{flex:auto}}.doc-list-row{transition:background-color 80ms}.doc-list-row:hover:not([data-active=true]){background:var(--bg-hover)}@media (hover:none){.doc-list-row:hover:not([data-active=true]){background:0 0}}@media (width<=640px){.doc-filter-bar .equip-hub-search{flex:100%}}.doc-card{align-items:flex-start;gap:var(--space-5);width:100%;padding:var(--space-4) var(--space-6);margin-bottom:var(--space-3);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;text-align:left;color:var(--color-text);box-sizing:border-box;transition:background-color 80ms,border-color 80ms,transform 80ms;display:flex}.doc-card:hover{background:var(--bg-hover);border-color:var(--color-accent)}@media (hover:none){.doc-card:hover{background:var(--bg-app);border-color:var(--border-default)}}.doc-card[data-active=true]{background:var(--bg-info);border-color:var(--color-accent);box-shadow:inset 3px 0 0 var(--color-accent)}.doc-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (width>=641px){.doc-card:not(.doc-card-compact){padding:var(--space-3) var(--space-6);align-items:center}.doc-card:not(.doc-card-compact) .doc-card-body{align-items:center;column-gap:var(--space-5);flex-flow:wrap}.doc-card:not(.doc-card-compact) .doc-card-title{flex:0 auto;min-width:0}.doc-card:not(.doc-card-compact) .doc-card-meta{justify-content:flex-end;align-items:center;margin-left:auto}.doc-card:not(.doc-card-compact) .doc-card-date{margin-left:var(--space-2);order:99}}.doc-card-icon{width:var(--space-10);height:var(--space-10);border-radius:var(--radius-md);background:var(--bg-info);color:var(--color-accent);flex:none;justify-content:center;align-items:center;display:flex}.doc-card-body{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.doc-card-title{font-size:var(--text-base);font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.doc-card-meta{gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.doc-card-date{color:var(--color-text-muted)}.doc-card-classification{padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--bg-header);color:var(--color-text)}.doc-card-classification[data-tone=acquire]{background:color-mix(in srgb, var(--color-accent) 13%, transparent);color:color-mix(in srgb, var(--color-accent) 75%, var(--color-text))}.doc-card-classification[data-tone=repair]{background:color-mix(in srgb, var(--color-warning) 15%, transparent);color:color-mix(in srgb, var(--color-warning) 78%, var(--color-text))}.doc-card-classification[data-tone=review]{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:color-mix(in srgb, var(--color-success) 70%, var(--color-text))}.doc-card-officer{color:var(--color-text-muted)}.doc-card-kw{font-size:var(--text-xs);padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--bg-info);color:var(--color-accent)}.doc-card-kw-more{font-size:var(--text-xs);color:var(--color-text-muted);padding:0 var(--space-2)}@media (width<=640px){.doc-card{padding:var(--space-4) var(--space-5);gap:var(--space-4)}.doc-card-icon{width:var(--space-8);height:var(--space-8)}}.doc-match{background:var(--bg-warning);color:var(--color-text);padding:0 var(--space-1);border-radius:var(--radius-xs,2px);font-weight:var(--weight-medium)}.doc-kbd-hint{margin-left:var(--space-2);padding:0 var(--space-2);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-app);font-size:var(--text-xs);font-family:var(--font-mono,monospace);color:var(--color-text-muted);line-height:1.3;display:inline-block}.doc-card-compact{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2);gap:var(--space-3)}.doc-card-compact .doc-card-icon{width:var(--space-7);height:var(--space-7)}.doc-card-compact .doc-card-title{font-size:var(--text-sm)}.doc-card-compact .doc-card-meta{font-size:var(--text-xs);gap:var(--space-2)}.doc-month-header{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-1);background:var(--bg-app);border:0;border-bottom:1px solid var(--border-default);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;text-align:left;display:flex}.doc-month-header:hover{background:var(--bg-hover)}.doc-month-label{word-break:keep-all}.doc-month-count{color:var(--color-text-muted);font-weight:var(--weight-normal);font-size:var(--text-xs)}.doc-month-sticky-anchor{z-index:2;height:0;position:sticky;top:0}.doc-month-sticky{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-1);background:var(--bg-app);border-bottom:1px solid var(--border-strong);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);pointer-events:none;display:flex;position:absolute;top:0;left:0;right:0}.doc-split{gap:var(--space-5);align-items:stretch;display:flex}.doc-list{flex:1;min-width:0;min-height:400px;max-height:calc(100dvh - 280px);overflow:auto}.doc-split-with-preview .doc-list{flex:0 34%;min-width:min(560px,44%);max-width:720px}@media (width<=1024px){.doc-split-with-preview .doc-list{flex:0 0 42%;max-width:42%}}.doc-preview-panel{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:0;max-height:calc(100dvh - 280px);top:var(--space-4);flex-direction:column;flex:1;display:flex;position:sticky;overflow:hidden}.doc-preview-header{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-default);background:var(--bg-panel);min-height:40px;display:flex}.doc-preview-title{min-width:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.doc-preview-close{width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.doc-preview-close:hover{background:var(--bg-hover)}.doc-preview-body{background:var(--bg-panel);flex:1;min-width:0;min-height:0;overflow:hidden}.doc-preview-main{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.doc-preview-side{background:var(--bg-app);border-top:1px solid var(--border-default);flex-direction:column;flex-shrink:0;max-height:42%;display:flex;overflow-y:auto}.doc-preview-side--collapsed{display:none}.doc-preview-info{padding:var(--space-3) var(--space-5) var(--space-2)}.doc-preview-info-label{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-muted);margin-bottom:var(--space-1)}@media (width>=1280px){.doc-preview-main{flex-direction:row}.doc-preview-side{border-top:none;border-left:1px solid var(--border-default);flex:0 0 300px;max-width:300px;max-height:none}}@media (width>=1800px){.doc-preview-side{flex:0 0 380px;max-width:380px}}.doc-meta-form{gap:var(--space-4) var(--space-5);grid-template-columns:1fr 1fr;display:grid}@media (width<=640px){.doc-meta-form{grid-template-columns:1fr}.doc-meta-span2{grid-column:auto}}.doc-meta-span2{grid-column:1/-1}.doc-meta-field{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.doc-meta-label{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);display:flex}.doc-meta-empty-badge{font-style:normal;font-size:var(--text-2xs);color:var(--color-warning);border:1px solid var(--color-warning);border-radius:var(--radius-sm);padding:0 var(--space-1);line-height:1.5}.doc-meta-field input[type=text],.doc-meta-field input[type=date],.doc-meta-field textarea{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-base);color:var(--color-text);background:var(--bg-app);border:1px solid var(--border-strong);border-radius:var(--radius-md);min-height:var(--tap-min);font-family:inherit}.doc-meta-field textarea{resize:vertical;min-height:72px}.doc-meta-field input:focus,.doc-meta-field textarea:focus{border-color:var(--color-accent);outline:none}.doc-meta-member-row,.doc-meta-tag-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.doc-meta-member-toggle{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);cursor:pointer;border:1px solid var(--border-strong);border-radius:var(--radius-full);background:var(--bg-app);color:var(--color-text)}.doc-meta-member-toggle[data-on]{border-color:var(--color-accent);background:var(--color-accent);color:var(--bg-app)}.doc-meta-tag{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);cursor:pointer;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-header);color:var(--color-text)}.doc-meta-tag:hover{border-color:var(--color-danger);color:var(--color-danger)}.doc-toolbar-search{flex:280px;min-width:240px}.doc-filter-controls{align-items:center;gap:var(--space-3);flex:0 auto;min-width:0;margin-left:auto;display:flex}.doc-filter-chips{align-items:center;gap:var(--space-3);flex-wrap:wrap;min-width:0;display:flex}.doc-filter-selects{align-items:center;gap:var(--space-3);flex-wrap:nowrap;flex-shrink:0;margin-left:auto;display:flex}@media (width<=640px){.doc-toolbar-search{flex:100%;min-width:0}.doc-filter-controls{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;flex:100%;margin-left:0;position:relative;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000)}.doc-filter-controls::-webkit-scrollbar{display:none}.doc-filter-controls>*{flex-shrink:0}.doc-filter-row select{margin-left:0!important}.doc-filter-selects select{min-height:var(--tap-min)}.doc-filter-chips{flex-wrap:nowrap}.doc-filter-chips>*{flex-shrink:0}.doc-filter-selects{margin-left:0}.doc-filter-selects>*{flex-shrink:0}}.doc-filter-row .ui-chip-active{background:var(--bg-info);border-color:var(--color-accent);color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent);font-weight:var(--weight-semibold)}.ui-search-icon{color:var(--color-text-muted);transition:color var(--t-base);flex:none}.ui-search-field:focus-within .ui-search-icon{color:var(--accent-500)}.ui-search-input{min-width:0;color:inherit;background:0 0;border:none;outline:none;flex:auto;font-family:inherit}.ui-search-md .ui-search-input{font-size:var(--text-base)}.ui-search-sm .ui-search-input{font-size:var(--text-sm)}.ui-search-input::-webkit-search-cancel-button{appearance:none}.ui-search-count{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums;flex:none}.ui-search-clear{width:var(--space-10);height:var(--space-10);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:background var(--t-fast), color var(--t-fast), transform var(--t-fast);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.ui-search-clear:hover,.ui-search-clear:focus-visible{background:var(--bg-hover-neutral);color:var(--color-text)}.ui-search-clear:active{transform:scale(.92)}.ui-search-hint-badge{font-family:inherit;font-size:var(--text-2xs);color:var(--color-text-muted);background:var(--bg-row-alt);border:1px solid var(--border-default);border-radius:var(--radius-sm);flex:none;padding:1px 5px}@media (hover:none) and (pointer:coarse){.ui-search-clear{min-width:32px;min-height:32px}}.ui-tab-bar{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border-default);scrollbar-width:none;background:linear-gradient(to right, var(--bg-app), transparent) 0 0 / 20px 100% no-repeat local, linear-gradient(to left, var(--bg-app), transparent) 100% 0 / 20px 100% no-repeat local, radial-gradient(farthest-side at 0 50%, color-mix(in srgb, var(--color-text) 14%, transparent), transparent) 0 0 / 8px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, color-mix(in srgb, var(--color-text) 14%, transparent), transparent) 100% 0 / 8px 100% no-repeat scroll;display:flex;overflow-x:auto}.ui-tab-bar::-webkit-scrollbar{display:none}.ui-tab{align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-6);color:var(--color-text-muted);font-family:inherit;font-size:var(--text-md);font-weight:var(--weight-medium);cursor:pointer;white-space:nowrap;transition:color var(--t-fast), background var(--t-fast), border-color var(--t-fast), transform var(--t-fast);background:0 0;border:0;display:inline-flex}.ui-tab:hover:not(:disabled),.ui-tab:focus-visible:not(:disabled){color:var(--color-text);background:var(--bg-hover)}.ui-tab:focus-visible:not(:disabled){outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px;box-shadow:0 0 0 3px var(--accent-glow-soft)}.ui-tab:active:not(:disabled){transform:scale(.97)}.ui-tab:disabled{color:var(--color-text-faint);cursor:not-allowed}@media (width<=640px),(pointer:coarse){.ui-tab{min-height:var(--tap-min)}}.ui-tab-badge{font-size:var(--text-xs);padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--bg-row-alt);color:var(--color-text-muted)}.ui-tab-bar-underline .ui-tab{border-bottom:2px solid #0000;margin-bottom:-1px}.ui-tab-bar-underline .ui-tab.ui-tab-active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:var(--weight-semibold)}.ui-tab-bar-pill{gap:var(--space-3);border-bottom:0}.ui-tab-bar-pill .ui-tab{border-radius:var(--radius-pill);padding:var(--space-3) var(--space-7)}.ui-tab-bar-pill .ui-tab.ui-tab-active{background:var(--color-accent);color:var(--color-text-on-accent)}@media (width<=640px){.ui-tab-bar{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.ui-tab{padding:var(--space-4) var(--space-5);font-size:var(--text-base);min-height:var(--tap-min);scroll-snap-align:start}}.ui-more-wrap{display:inline-flex;position:relative}.ui-more-btn{width:var(--space-16);height:var(--space-16);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.ui-more-btn:hover,.ui-more-btn:focus-visible{background:var(--bg-hover);border-color:var(--border-strong);color:var(--color-text)}.ui-more-menu{background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);min-width:180px;box-shadow:var(--shadow-md);z-index:var(--z-sticky);position:absolute;top:calc(100% + 4px);right:0;overflow:hidden}.ui-more-menu.is-left{left:0;right:auto}.ui-more-item{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-5) var(--space-6);color:var(--color-text);font-family:inherit;font-size:var(--text-sm);text-align:left;white-space:nowrap;cursor:pointer;transition:background var(--t-fast);background:0 0;border:0;display:flex}.ui-more-item:hover:not(:disabled){background:var(--bg-hover)}.ui-more-item:disabled{color:var(--color-text-faint);cursor:not-allowed}.ui-more-icon{color:var(--color-text-muted);display:inline-flex}.ui-btn{justify-content:center;align-items:center;gap:var(--space-3);padding:0 var(--space-6);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-medium);line-height:var(--leading-none);white-space:nowrap;cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), filter var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);border:1px solid #0000;display:inline-flex}.ui-btn:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.ui-btn:disabled{opacity:var(--disabled-opacity);cursor:var(--disabled-cursor)}.ui-btn-icon{flex:none;display:inline-flex}.ui-btn-label{display:inline-flex}.ui-btn-xs{height:var(--space-11);padding:0 var(--space-4);font-size:var(--text-base);gap:var(--space-2);min-width:var(--space-14)}.ui-btn-sm{height:var(--space-14);padding:0 var(--space-5);font-size:var(--text-sm);gap:var(--space-2)}.ui-btn-md{height:var(--space-16)}.ui-btn-lg{height:var(--space-18);padding:0 var(--space-7);font-size:var(--text-md)}.ui-btn-primary{background:var(--color-accent-fill);color:var(--color-text-on-accent);border-color:var(--color-accent-fill);box-shadow:var(--shadow-xs)}.ui-btn-primary:hover:not(:disabled),.ui-btn-primary:focus-visible:not(:disabled){filter:brightness(1.08);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.ui-btn-primary:active:not(:disabled){box-shadow:var(--shadow-xs);filter:brightness();transform:translateY(0)}.ui-btn-primary:disabled{box-shadow:none;transform:none}.ui-btn-secondary{background:var(--bg-app);color:var(--color-text);border-color:var(--border-default)}.ui-btn-secondary:hover:not(:disabled),.ui-btn-secondary:focus-visible:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}.ui-btn-outline{color:var(--color-text);border-color:var(--border-default);background:0 0}.ui-btn-outline:hover:not(:disabled),.ui-btn-outline:focus-visible:not(:disabled){background:var(--bg-hover);border-color:var(--color-accent);color:var(--color-accent)}.ui-btn-ghost{color:var(--color-text-muted);background:0 0;border-color:#0000}.ui-btn-ghost:hover:not(:disabled),.ui-btn-ghost:focus-visible:not(:disabled){background:var(--bg-hover);color:var(--color-text)}.ui-btn-danger{background:var(--color-danger);color:var(--color-text-on-accent);border-color:var(--color-danger)}.ui-btn-danger:hover:not(:disabled),.ui-btn-danger:focus-visible:not(:disabled){filter:brightness(1.08)}.ui-btn-danger-soft:hover:not(:disabled),.ui-btn-danger-soft:focus-visible:not(:disabled){background:var(--bg-hover-danger);color:var(--color-danger);border-color:var(--color-danger)}.ui-stat-card{gap:var(--space-2);padding:var(--space-5) var(--space-6);background:var(--bg-app);border:1px solid var(--border-default);border-radius:var(--radius-md);text-align:left;flex-direction:column;font-family:inherit;display:flex}.ui-stat-card-clickable{cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast)}.ui-stat-card-clickable:hover,.ui-stat-card-clickable:focus-visible{background:var(--bg-hover);border-color:var(--border-strong)}.ui-stat-head{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-muted);display:inline-flex}.ui-stat-icon{flex:none;display:inline-flex}.ui-stat-label{font-weight:var(--weight-semibold)}.ui-stat-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:var(--leading-tight)}.ui-stat-hint{font-size:var(--text-xs);color:var(--color-text-muted);min-height:var(--text-md)}.ui-stat-default .ui-stat-icon{color:var(--color-text-muted)}.ui-stat-success .ui-stat-icon{color:var(--color-success)}.ui-stat-warn .ui-stat-icon{color:var(--color-warning)}.ui-stat-danger .ui-stat-icon{color:var(--color-danger)}.ui-stat-info .ui-stat-icon{color:var(--color-accent)}.ui-stat-accent-border-top.ui-stat-success{border-top:3px solid var(--color-success)}.ui-stat-accent-border-top.ui-stat-warn{border-top:3px solid var(--color-warning)}.ui-stat-accent-border-top.ui-stat-danger{border-top:3px solid var(--color-danger)}.ui-stat-accent-border-top.ui-stat-info{border-top:3px solid var(--color-accent)}.ui-stat-accent-border-left.ui-stat-success{border-left:3px solid var(--color-success)}.ui-stat-accent-border-left.ui-stat-warn{border-left:3px solid var(--color-warning)}.ui-stat-accent-border-left.ui-stat-danger{border-left:3px solid var(--color-danger)}.ui-stat-accent-border-left.ui-stat-info{border-left:3px solid var(--color-accent)}.ui-hint{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-5);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-normal);display:inline-flex}.ui-hint-icon{margin-top:var(--space-1);flex:none;display:inline-flex}.ui-hint-body{flex:auto}.ui-hint-info{background:var(--bg-info);color:var(--color-text);border-color:#2e7df640}.ui-hint-info .ui-hint-icon{color:var(--color-accent)}.ui-hint-warn{background:var(--bg-warning);color:var(--color-text);border-color:#d977064d}.ui-hint-warn .ui-hint-icon{color:var(--color-warning)}.ui-hint-danger{background:var(--bg-danger);color:var(--color-text);border-color:#dc26264d}.ui-hint-danger .ui-hint-icon{color:var(--color-danger)}.ui-hint-success{background:var(--bg-success);color:var(--color-text);border-color:#10b9814d}.ui-hint-success .ui-hint-icon{color:var(--color-success)}.text-mono-path{word-break:break-all;color:var(--color-text-muted);font-family:monospace;font-size:var(--text-xs)}.text-mono-path-truncate{word-break:break-all;text-overflow:ellipsis;white-space:nowrap;font-family:monospace;overflow:hidden}.text-break-all{word-break:break-all}.ui-modal-backdrop{background:var(--modal-backdrop,#0f172a80);-webkit-backdrop-filter:blur(var(--modal-blur,2px));z-index:var(--z-modal,1100);padding:var(--modal-pad,16px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.ui-modal{background:var(--color-surface,#fff);border-radius:var(--radius-lg,12px);max-height:calc(100dvh - var(--modal-pad,16px) * 2);flex-direction:column;width:100%;max-width:560px;display:flex;position:relative;overflow:hidden;box-shadow:0 20px 50px #00000040}.ui-modal-head{justify-content:space-between;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--color-border);flex-shrink:0;padding:14px 18px;display:flex}.ui-modal-head h2{align-items:center;gap:8px;min-width:0;margin:0;font-size:15px;font-weight:700;display:flex}.ui-modal-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:6px;transition:background .1s,color .1s;display:inline-flex}.ui-modal-close:hover{background:var(--color-surface-hover);color:var(--color-text)}.ui-modal-close:focus-visible{outline:2px solid var(--color-accent-500);outline-offset:1px}.ui-modal-body{flex:1;min-height:0;padding:16px 18px;overflow-y:auto}.ui-modal-foot{align-items:center;gap:var(--space-2);border-top:1px solid var(--color-border);background:var(--color-surface-sunken);flex-shrink:0;padding:12px 18px;display:flex}.ui-input,.ui-textarea{border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-app);color:var(--color-text);font-family:inherit;font-size:var(--text-sm);padding:var(--input-pad-y-sm) var(--input-pad-x-sm);min-width:0}.ui-input::placeholder,.ui-textarea::placeholder{color:var(--color-text-faint)}.ui-input:focus-visible,.ui-textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:-1px;border-color:var(--color-accent)}.ui-input:disabled,.ui-textarea:disabled{opacity:.55;cursor:not-allowed}.ui-input-xs{padding:var(--input-pad-y-xs) var(--input-pad-x-xs);font-size:var(--text-xs)}.ui-input-md{padding:var(--input-pad-y-md) var(--input-pad-x-md)}.ui-input-full{width:100%}.ui-input.is-error,.ui-textarea.is-error{border-color:var(--color-danger)}.ui-textarea{resize:vertical;min-height:64px}@media (hover:none) and (pointer:coarse){.ui-input-md{min-height:var(--tap-min)}}.ndi-dock{right:var(--space-8);bottom:var(--space-8);z-index:var(--z-dropdown);width:320px;max-width:calc(100vw - var(--space-10));border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);background:#141414;position:fixed;overflow:hidden}.ndi-dock-bar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#0000008c;display:flex}.ndi-dock-grip{padding:var(--space-1) 2px;color:#ffffff80;border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;flex:none;justify-content:center;align-items:center;display:inline-flex}.ndi-dock-grip:hover{color:#ffffffd9;background:#ffffff1f}.ndi-dock-title{align-items:center;gap:var(--space-2);cursor:pointer;color:#ffffffeb;font-size:var(--text-xs);font-weight:var(--weight-semibold);background:0 0;border:0;padding:0;display:inline-flex}.ndi-dock-title:hover{text-decoration:underline}.ndi-dock-spacer{flex:1}.ndi-dock-btn{border-radius:var(--radius-sm);cursor:pointer;color:#ffffffbf;background:0 0;border:0;flex:none;justify-content:center;align-items:center;width:26px;height:26px;padding:0;display:inline-flex}.ndi-dock-btn:hover{color:#fff;background:#ffffff24}.ndi-dock-close:hover{color:#fff;background:#ef4444d9}.ndi-dock-video{aspect-ratio:16/9;background:#141414;width:100%;position:relative}.ndi-dock-video video{object-fit:contain;background:#141414;width:100%;height:100%;display:block}.ndi-dock-err{justify-content:center;align-items:center;gap:var(--space-4);color:#ffffffd9;font-size:var(--text-sm);background:#141414b3;flex-direction:column;display:flex;position:absolute;inset:0}.ndi-dock-err button{padding:var(--space-2) var(--space-6);border-radius:var(--radius-sm);background:var(--color-accent);color:var(--color-text-on-accent);cursor:pointer;font-size:var(--text-xs);border:0}.ndi-dock-resize{cursor:nwse-resize;touch-action:none;z-index:2;background:linear-gradient(135deg,#0000 0 55%,#ffffff8c 55% 62%,#0000 62% 74%,#ffffff8c 74% 81%,#0000 81%);width:18px;height:18px;position:absolute;bottom:0;right:0}.ndi-dock-resize:hover{background:linear-gradient(135deg,#0000 0 55%,#ffffffe6 55% 62%,#0000 62% 74%,#ffffffe6 74% 81%,#0000 81%)}.ladder-modal{width:min(760px,100%);max-width:100%}.ladder-modal .modal-header h3{align-items:center;gap:var(--space-3);display:flex}.ladder-progress{font-size:var(--text-xs);color:var(--color-accent);font-variant-numeric:tabular-nums;margin-left:auto;font-weight:600}.ladder-body{gap:var(--space-8);flex-direction:column;display:flex}.ladder-section{gap:var(--space-4);flex-direction:column;display:flex}.ladder-h{font-size:var(--text-md);color:var(--color-text);align-items:center;gap:var(--space-3);word-break:keep-all;margin:0;font-weight:700;display:flex}.ladder-count{color:var(--color-text-muted);font-weight:500;font-size:var(--text-xs)}.ladder-guide{font-size:var(--text-sm);color:var(--color-text-muted);word-break:keep-all;margin:0}.ladder-people{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.ladder-player{align-items:center;gap:var(--space-2);min-height:32px;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-6);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--m-color) 16%, transparent);color:var(--m-color);border:1.5px solid color-mix(in srgb, var(--m-color) 45%, transparent);font-size:var(--text-sm);word-break:keep-all;font-weight:600;display:inline-flex}.ladder-player button{border-radius:var(--radius-full);background:color-mix(in srgb, var(--m-color) 22%, transparent);width:18px;height:18px;color:inherit;cursor:pointer;border:none;flex-shrink:0;place-items:center;display:grid}.ladder-player button:hover{background:var(--m-color);color:#fff}.ladder-add{align-items:center;gap:var(--space-1);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-pill);padding:0 var(--space-2) 0 var(--space-5);min-height:32px;display:inline-flex}.ladder-add input{font-size:var(--text-sm);width:84px;color:var(--color-text);background:0 0;border:none;outline:none}.ladder-add button{border-radius:var(--radius-full);background:var(--color-accent);color:#fff;cursor:pointer;border:none;place-items:center;width:22px;height:22px;display:grid}.ladder-quick{gap:var(--space-2);flex-wrap:wrap;display:flex}.ladder-quick-btn{align-items:center;gap:var(--space-2);min-height:28px;padding:var(--space-1) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--bg-app);color:var(--color-text-muted);font-size:var(--text-xs);cursor:pointer;word-break:keep-all;display:inline-flex}.ladder-quick-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.ladder-quick-btn.ghost{border-style:dashed}.ladder-prizes{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(112px,1fr));display:grid}.ladder-prize-input{min-height:var(--space-15);padding:var(--space-2) var(--space-5);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--text-sm);text-align:center;background:var(--bg-app);color:var(--color-text);min-width:0;font-weight:600}.ladder-prize-input:focus{border-color:var(--color-accent);outline:none}.ladder-prize-input[data-blank=yes]{color:var(--color-text-faint);font-weight:400}.ladder-shiftpanel{gap:var(--space-4);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-sunken);flex-direction:column;display:flex}.ladder-range{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.ladder-range input,.ladder-type select{min-height:var(--space-15);padding:var(--space-2) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);background:var(--bg-app);color:var(--color-text);max-width:100%}.ladder-tilde{color:var(--color-text-faint)}.ladder-days{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(148px,1fr));display:grid}.ladder-day{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--bg-app);display:flex}.ladder-day[data-off=yes]{opacity:.45}.ladder-day[data-red=yes]{border-color:var(--red-200);background:var(--red-50)}.ladder-day[data-red=yes] .ladder-day-label strong{color:var(--color-sun-emphasis)}.ladder-day[data-red=sat] .ladder-day-label strong{color:var(--color-info)}.ladder-day-label{align-items:baseline;gap:var(--space-2);font-size:var(--text-sm);min-width:0;display:flex}.ladder-day-label span{color:var(--color-text-muted);font-size:var(--text-xs)}.ladder-holiday{font-style:normal;font-size:var(--text-2xs);color:var(--color-sun-emphasis);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ladder-stepper{align-items:center;gap:var(--space-1);flex-shrink:0;display:flex}.ladder-stepper button{width:var(--space-11);height:var(--space-11);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--bg-app);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-base);place-items:center;line-height:1;display:grid}.ladder-stepper button:hover{background:var(--color-surface-hover);color:var(--color-text)}.ladder-stepper span{text-align:center;min-width:34px;font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.ladder-types{gap:var(--space-4);flex-wrap:wrap;display:flex}.ladder-type{align-items:center;gap:var(--space-3);display:flex}.ladder-type-nth{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.ladder-shiftpanel-foot{justify-content:flex-end;display:flex}.ladder-board{flex-direction:column;display:flex}.ladder-board-heads,.ladder-board-feet{gap:var(--space-1);display:grid}.ladder-board-head{min-width:0;padding:var(--space-4) var(--space-1);border:2px solid var(--m-color);border-radius:var(--radius-lg);background:color-mix(in srgb, var(--m-color) 12%, transparent);color:var(--m-color);font-size:var(--text-sm);cursor:pointer;transition:transform var(--t-fast), background var(--t-base), opacity var(--t-base);font-weight:700}.ladder-board-head-name{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ladder-board-head[data-state=ready]:hover:not(:disabled){background:color-mix(in srgb, var(--m-color) 24%, transparent);transform:translateY(-3px)}.ladder-board-head[data-state=ready]:not(:disabled){animation:2.4s ease-in-out infinite ladder-head-bob}.ladder-board-head[data-state=running]{background:var(--m-color);color:#fff;transform:translateY(-3px)}.ladder-board-head:disabled{cursor:default;animation:none}@keyframes ladder-head-bob{0%,92%,to{transform:translateY(0)}96%{transform:translateY(-3px)}}.ladder-board-svg{width:100%;height:clamp(190px,32vh,300px);display:block}.ladder-board-grid line{stroke:var(--color-border-strong);stroke-width:2px;stroke-linecap:round}.ladder-board-rung{transform-box:stroke-box;transform-origin:50%;animation:.22s ease-out backwards ladder-rung-in}@keyframes ladder-rung-in{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.ladder-board-traces path{fill:none;stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.ladder-board-sweep{animation-name:ladder-sweep-down;animation-timing-function:cubic-bezier(.45,0,.35,1);animation-fill-mode:forwards}@keyframes ladder-sweep-down{to{height:1px}}.ladder-board-foot{justify-content:center;align-items:center;gap:var(--space-1);min-height:52px;padding:var(--space-3) var(--space-1);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-sunken);text-align:center;flex-direction:column;min-width:0;display:flex}.ladder-board-foot[data-open=yes]{border-color:var(--m-color);background:color-mix(in srgb, var(--m-color) 14%, transparent);animation:.42s cubic-bezier(.16,1,.3,1) ladder-foot-open}.ladder-board-foot[data-blank=yes]{border-color:var(--color-border);background:var(--color-surface-sunken)}.ladder-board-foot-hidden{font-size:var(--text-xl);color:var(--color-text-faint);font-weight:800;animation:1.8s ease-in-out infinite ladder-q-pulse}.ladder-board-foot-prize{font-size:var(--text-xs);color:var(--m-color);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:700;overflow:hidden}.ladder-board-foot-winner{font-size:var(--text-2xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@keyframes ladder-foot-open{0%{opacity:.3;transform:scale(.82)rotate(-3deg)}55%{transform:scale(1.1)rotate(1.5deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes ladder-q-pulse{0%,to{opacity:.45;transform:scale(1)}50%{opacity:.9;transform:scale(1.12)}}.ladder-summary{gap:var(--space-4);flex-direction:column;display:flex}.ladder-tally-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.ladder-tally-item{font-size:var(--text-xs);color:var(--color-text-muted);border:1px solid var(--color-border);border-left:3px solid var(--m-color);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-5);word-break:keep-all}.ladder-tally-item strong{color:var(--color-text)}.ladder-seed{font-size:var(--text-2xs);color:var(--color-text-faint);word-break:keep-all;margin:0}.ladder-seed code{font-family:var(--font-mono);font-size:var(--text-3xs)}.ladder-footer{gap:var(--space-3);flex-wrap:wrap}@media (width<=640px){.ladder-board-svg{height:clamp(170px,28vh,230px)}.ladder-board-head{font-size:var(--text-2xs);padding:var(--space-3) var(--space-1)}.ladder-board-foot-prize{font-size:var(--text-3xs)}.ladder-days{grid-template-columns:1fr}.ladder-range input{flex:140px;min-width:0}.ladder-prizes{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}}@media (prefers-reduced-motion:reduce){.ladder-board-sweep{height:1px;animation:none}.ladder-board-rung,.ladder-board-head,.ladder-board-foot,.ladder-board-foot-hidden{animation:none}}.ladder-sound{width:var(--space-14);height:var(--space-14);margin-left:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--bg-app);color:var(--color-text-faint);cursor:pointer;flex-shrink:0;place-items:center;display:grid}.ladder-sound:hover{background:var(--color-surface-hover);color:var(--color-text)}.ladder-sound[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-50)}.ladder-modes{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.ladder-mode{gap:var(--space-1);padding:var(--space-5) var(--space-4);border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--bg-app);cursor:pointer;text-align:left;transition:border-color var(--t-base), background var(--t-base);flex-direction:column;min-width:0;display:flex}.ladder-mode:hover{background:var(--color-surface-hover)}.ladder-mode[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent-50)}.ladder-mode-label{font-size:var(--text-sm);color:var(--color-text);font-weight:700}.ladder-mode[aria-pressed=true] .ladder-mode-label{color:var(--color-accent-700)}.ladder-mode-hint{font-size:var(--text-3xs);color:var(--color-text-muted);word-break:keep-all;line-height:1.35}.ladder-turn{align-items:center;gap:var(--space-3);min-height:var(--space-14);flex-wrap:wrap;display:flex}.ladder-turn-badge{padding:var(--space-2) var(--space-6);border-radius:var(--radius-pill);background:var(--m-color);color:#fff;font-size:var(--text-sm);font-weight:700}.ladder-turn-text{font-size:var(--text-sm);color:var(--color-text-muted);word-break:keep-all}.ladder-turn-done{font-size:var(--text-sm);color:var(--color-accent);font-weight:700}.ladder-cards{gap:var(--space-6);flex-direction:column;display:flex}.ladder-card-queue{gap:var(--space-2);flex-wrap:wrap;display:flex}.ladder-card-queue-item{font-size:var(--text-2xs);padding:var(--space-1) var(--space-5);border-radius:var(--radius-pill);border:1px solid var(--color-border);color:var(--color-text-muted);word-break:keep-all}.ladder-card-queue-item[data-state=now]{border-color:var(--m-color);background:var(--m-color);color:#fff;font-weight:700}.ladder-card-queue-item[data-state=done]{border-color:color-mix(in srgb, var(--m-color) 45%, transparent);color:var(--m-color)}.ladder-wheel{align-items:center;gap:var(--space-5);flex-direction:column;display:flex}.ladder-wheel .ladder-turn{justify-content:center}.ladder-wheel-prize{padding:var(--space-2) var(--space-6);border-radius:var(--radius-pill);background:var(--color-accent);color:#fff;font-size:var(--text-sm);word-break:keep-all;font-weight:700}.ladder-wheel-prize[data-blank=yes]{background:var(--color-text-faint)}.ladder-wheel-stage{width:min(300px,74vw);position:relative}.ladder-wheel-svg{filter:drop-shadow(0 4px 10px #00000024);width:100%;height:auto;transition-property:transform;transition-timing-function:cubic-bezier(.12,.72,.16,1);display:block}.ladder-wheel-label{fill:#fff;paint-order:stroke;stroke:#00000040;stroke-width:2px;font-size:10px;font-weight:700}.ladder-wheel-pointer{border-left:11px solid #0000;border-right:11px solid #0000;border-top:20px solid var(--color-danger);z-index:1;filter:drop-shadow(0 2px 3px #0000004d);width:0;height:0;position:absolute;top:-6px;left:50%;transform:translate(-50%)}.ladder-wheel-spin{min-height:var(--space-20);padding:0 var(--space-12);border-radius:var(--radius-pill);background:var(--color-accent);color:#fff;font-size:var(--text-md);cursor:pointer;transition:transform var(--t-fast), background var(--t-base);border:none;font-weight:700}.ladder-wheel-spin:hover:not(:disabled){background:var(--color-accent-fill-hover);transform:translateY(-2px)}.ladder-wheel-spin:disabled{background:var(--color-text-faint);cursor:default}@media (width<=640px){.ladder-modes{grid-template-columns:1fr}.ladder-mode{align-items:baseline;gap:var(--space-4);flex-direction:row}.ladder-card-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(68px,1fr))}}@media (prefers-reduced-motion:reduce){.ladder-card-inner,.ladder-card[data-open=yes] .ladder-card-inner{transition:none;animation:none}.ladder-wheel-svg{transition:none}}.ladder-modal{--lot-ease:cubic-bezier(.23, 1, .32, 1);--lot-pop:cubic-bezier(.34, 1.56, .64, 1);width:min(820px,100%)}.ladder-board,.ladder-cards,.ladder-wheel{padding:var(--space-6) var(--space-5) var(--space-5);border-radius:var(--radius-2xl);background:radial-gradient(120% 90% at 50% 0%, var(--color-accent-50) 0%, transparent 62%), var(--color-surface-sunken);border:1px solid var(--color-border-subtle)}.ladder-board-head,.ladder-card,.ladder-wheel-spin,.ladder-mode,.ladder-quick-btn,.ladder-stepper button,.ladder-sound{transition:transform .14s var(--lot-ease), background .14s ease, border-color .14s ease}.ladder-board-head:active:not(:disabled),.ladder-mode:active,.ladder-quick-btn:active,.ladder-stepper button:active,.ladder-sound:active{transform:scale(.96)}.ladder-card:active:not(:disabled) .ladder-card-inner{transform:scale(.96) rotate(var(--tilt))}.ladder-wheel-spin:active:not(:disabled){transform:scale(.96)}@media (hover:hover) and (pointer:fine){.ladder-board-head[data-state=ready]:hover:not(:disabled){box-shadow:0 8px 18px color-mix(in srgb, var(--m-color) 34%, transparent);transform:translateY(-4px)}}.ladder-board-svg{height:clamp(210px,34vh,330px)}.ladder-board-grid line{stroke:color-mix(in srgb, var(--color-border-strong) 70%, transparent)}.ladder-board-traces path{stroke-width:5px;transition:opacity .18s var(--lot-ease), stroke-width .18s var(--lot-ease)}.ladder-board-traces[data-focused=yes] path{opacity:.12;stroke-width:3px}.ladder-board-traces[data-focused=yes] path[data-active=yes]{opacity:1;stroke-width:6px}.ladder-board-head{font-size:var(--text-base);border-width:2.5px}.ladder-board-head[data-state=done]{opacity:.62;cursor:default}.ladder-board-head[data-state=done]:hover{opacity:1}.ladder-board-head[data-state=done]:active{transform:none}.ladder-board-foot{min-height:62px;transition:transform .18s var(--lot-ease), opacity .18s ease;border-width:2.5px;position:relative}.ladder-board-foot[data-active=yes]{transform:translateY(-3px)scale(1.03)}.ladder-board-foot[data-open=yes]{animation:ladder-foot-open .46s var(--lot-pop);box-shadow:0 6px 16px color-mix(in srgb, var(--m-color) 30%, transparent)}.ladder-board-foot[data-blank=yes]{border-color:color-mix(in srgb, var(--m-color) 38%, var(--color-border));background:color-mix(in srgb, var(--m-color) 6%, var(--bg-app));box-shadow:none}.ladder-board-foot[data-blank=yes] .ladder-board-foot-prize{color:color-mix(in srgb, var(--m-color) 62%, var(--color-text-muted))}.ladder-board-foot-prize{font-size:var(--text-sm)}.ladder-board-foot-winner{font-size:var(--text-xs);color:var(--m-color);font-weight:700}.ladder-board-foot-hidden{font-size:var(--text-2xl)}.ladder-card-grid{justify-content:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.ladder-card{aspect-ratio:5/7;perspective:900px;flex:none;width:clamp(78px,15vw,104px)}.ladder-card-inner{width:100%;height:100%;transform:rotate(var(--tilt,0deg));transform-style:preserve-3d;transition:transform .52s var(--lot-ease);background:0 0;border:none;padding:0;display:block;position:relative}.ladder-card[data-open=yes] .ladder-card-inner{transform:rotate(0)rotateY(180deg)}.ladder-card-face{justify-content:center;align-items:center;gap:var(--space-1);border-radius:var(--radius-lg);backface-visibility:hidden;padding:var(--space-3) var(--space-2);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.ladder-card-back{background:repeating-linear-gradient(45deg, var(--color-accent-600) 0 7px, var(--color-accent-700) 7px 14px);border:2px solid var(--color-accent-800);box-shadow:inset 0 0 0 3px #ffffff57}.ladder-card-back-num{font-size:var(--text-lg);color:#fff;text-shadow:0 1px 2px #00000059;font-weight:800}.ladder-card-front{background:color-mix(in srgb, var(--m-color) 16%, #fff);border:2.5px solid var(--m-color);transform:rotateY(180deg)}.ladder-card[data-blank=yes] .ladder-card-front{background:color-mix(in srgb, var(--m-color) 6%, var(--bg-app));border-color:color-mix(in srgb, var(--m-color) 38%, var(--color-border))}.ladder-card[data-open=yes]:not([data-blank=yes]) .ladder-card-front{box-shadow:0 6px 18px color-mix(in srgb, var(--m-color) 34%, transparent)}.ladder-card-prize{font-size:var(--text-xs)}.ladder-card-owner{font-size:var(--text-2xs);color:var(--m-color);font-weight:700}.ladder-card[data-blank=yes] .ladder-card-prize{color:color-mix(in srgb, var(--m-color) 62%, var(--color-text-muted))}@media (hover:hover) and (pointer:fine){.ladder-card:not(:disabled):hover .ladder-card-inner{transform:rotate(var(--tilt,0deg)) translateY(-8px) scale(1.04)}}.ladder-wheel-stage{width:min(320px,76vw)}.ladder-wheel-svg{filter:drop-shadow(0 8px 20px #0003);border-radius:var(--radius-full)}.ladder-wheel-label{font-size:11px}.ladder-wheel-pointer{border-top-color:var(--slate-800);border-top-width:24px;border-left-width:13px;border-right-width:13px;top:-10px}.ladder-wheel-spin{box-shadow:0 6px 16px color-mix(in srgb, var(--color-accent) 42%, transparent);font-size:var(--text-lg)}.ladder-winners{justify-content:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.ladder-winner-card{align-items:center;gap:var(--space-1);min-width:150px;max-width:280px;padding:var(--space-6) var(--space-5);border:2.5px solid var(--m-color);border-radius:var(--radius-xl);background:color-mix(in srgb, var(--m-color) 13%, #fff);box-shadow:0 6px 16px color-mix(in srgb, var(--m-color) 26%, transparent);animation:ladder-winner-in .42s var(--lot-pop) backwards;flex-direction:column;flex:0 auto;min-width:0;display:flex}.ladder-winner-prize{font-size:var(--text-lg);color:var(--m-color);text-align:center;word-break:keep-all;max-width:100%;font-weight:800}.ladder-winner-name{font-size:var(--text-sm);color:var(--color-text);font-weight:600}@keyframes ladder-winner-in{0%{opacity:0;transform:translateY(10px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}.ladder-tally-item{animation:ladder-winner-in .3s var(--lot-ease) backwards}.ladder-progress{font-size:var(--text-sm)}.ladder-guide{font-size:var(--text-base)}.ladder-turn-badge{font-size:var(--text-base);padding:var(--space-3) var(--space-7)}.ladder-turn-done{font-size:var(--text-md)}.ladder-wheel-prize{font-size:var(--text-base);padding:var(--space-3) var(--space-7)}.ladder-confetti{pointer-events:none;display:block;position:absolute;inset:0;overflow:visible}.ladder-confetti-piece{width:var(--w);height:var(--h);opacity:0;animation:ladder-confetti-fly 1s var(--lot-ease) var(--delay) forwards;border-radius:1px;position:absolute;top:50%;left:50%}@keyframes ladder-confetti-fly{0%{opacity:1;transform:translate(-50%,-50%)scale(.4)rotate(0)}70%{opacity:1}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy) + var(--fall))) scale(1) rotate(var(--rot));opacity:0}}@media (width<=640px){.ladder-board,.ladder-cards,.ladder-wheel{padding:var(--space-5) var(--space-3) var(--space-4)}.ladder-card{width:clamp(64px,20vw,84px)}.ladder-winner-card{padding:var(--space-5);flex-basis:100%}.ladder-winner-prize{font-size:var(--text-md)}}@media (prefers-reduced-motion:reduce){.ladder-card-inner,.ladder-board-foot,.ladder-board-traces path,.ladder-winner-card,.ladder-tally-item{transition:none;animation:none}.ladder-confetti{display:none}}.ladder-history{gap:var(--space-6);flex-direction:column;display:flex}.ladder-history-empty{font-size:var(--text-sm);color:var(--color-text-muted);word-break:keep-all;margin:0}.ladder-history-tally{gap:var(--space-3);flex-direction:column;display:flex}.ladder-history-tally-label{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);font-weight:600;display:inline-flex}.ladder-tally-item[data-zero=yes]{opacity:.5}.ladder-history-list{gap:var(--space-3);flex-direction:column;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.ladder-history-item{gap:var(--space-2);padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--bg-app);flex-direction:column;display:flex}.ladder-history-head{align-items:center;gap:var(--space-3);font-size:var(--text-2xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.ladder-history-when{color:var(--color-text);font-variant-numeric:tabular-nums;font-weight:700}.ladder-history-mode{padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-surface-sunken);border:1px solid var(--color-border)}.ladder-history-applied{padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--color-accent-50);border:1px solid var(--color-accent-200);color:var(--color-accent-700);font-weight:600}.ladder-history-results{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.ladder-history-win{font-size:var(--text-xs);padding:var(--space-1) var(--space-5);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--m-color) 14%, transparent);color:var(--m-color);word-break:keep-all}.ladder-history-win strong{font-weight:700}.ladder-history-blank,.ladder-history-none{font-size:var(--text-2xs);color:var(--color-text-faint)}.ladder-order-hint{font-size:var(--text-2xs);color:var(--color-text-faint);word-break:keep-all;font-weight:400}.ladder-player{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;transition:transform .14s var(--lot-ease), box-shadow .14s ease, opacity .14s ease}.ladder-player[data-dragging=yes]{cursor:grabbing;box-shadow:0 6px 16px color-mix(in srgb, var(--m-color) 40%, transparent);z-index:1;transform:scale(1.06)}.ladder-player-no{min-width:16px;height:16px;margin-right:var(--space-1);border-radius:var(--radius-full);background:color-mix(in srgb, var(--m-color) 26%, transparent);font-size:var(--text-3xs);font-variant-numeric:tabular-nums;place-items:center;font-weight:700;display:inline-grid}.ladder-player button{touch-action:auto;cursor:pointer}.ladder-history-del{width:var(--space-11);height:var(--space-11);border-radius:var(--radius-sm);color:var(--color-text-faint);cursor:pointer;background:0 0;border:none;flex-shrink:0;place-items:center;margin-left:auto;transition:background .14s,color .14s;display:grid}.ladder-history-del:hover{background:var(--red-50);color:var(--color-danger)}.ladder-history-del:active{transform:scale(.92)}
