@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:300;src:url(./outfit-latin-ext-300-normal-BYS6Dpvq.woff2) format("woff2"),url(./outfit-latin-ext-300-normal-CMIMshEd.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:300;src:url(./outfit-latin-300-normal-CRYTwY6m.woff2) format("woff2"),url(./outfit-latin-300-normal-AWLfuCom.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(./outfit-latin-ext-400-normal-5tcqmc2S.woff2) format("woff2"),url(./outfit-latin-ext-400-normal-DHm7mdGe.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(./outfit-latin-400-normal-BGsTXAXT.woff2) format("woff2"),url(./outfit-latin-400-normal-DMwTpYkH.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(./outfit-latin-ext-500-normal-zeox_O30.woff2) format("woff2"),url(./outfit-latin-ext-500-normal-DrCvqoFD.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(./outfit-latin-500-normal-DKnIMDSk.woff2) format("woff2"),url(./outfit-latin-500-normal-ClnHRwRh.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(./outfit-latin-ext-600-normal-B85nYjL1.woff2) format("woff2"),url(./outfit-latin-ext-600-normal-CWJcPgd7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(./outfit-latin-600-normal-B7SfZ07L.woff2) format("woff2"),url(./outfit-latin-600-normal-BEfTtDA7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(./outfit-latin-ext-700-normal-CI4iH74K.woff2) format("woff2"),url(./outfit-latin-ext-700-normal-fjS8-Gm7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(./outfit-latin-700-normal-Cu9v6i1X.woff2) format("woff2"),url(./outfit-latin-700-normal-D4itBLBr.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:500;src:url(./baloo-2-devanagari-500-normal-Ddzk8H1G.woff2) format("woff2"),url(./baloo-2-devanagari-500-normal-BGpOhOmM.woff) format("woff");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:500;src:url(./baloo-2-vietnamese-500-normal-Cj5RGu3k.woff2) format("woff2"),url(./baloo-2-vietnamese-500-normal-ClyrcyJC.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:500;src:url(./baloo-2-latin-ext-500-normal-Ba7mhTsk.woff2) format("woff2"),url(./baloo-2-latin-ext-500-normal-D1XZow3C.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:500;src:url(./baloo-2-latin-500-normal-CmLZ27r7.woff2) format("woff2"),url(./baloo-2-latin-500-normal-BSdEhq8m.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(./baloo-2-devanagari-600-normal-CuT_xCk5.woff2) format("woff2"),url(./baloo-2-devanagari-600-normal-Cnn1WFYO.woff) format("woff");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(./baloo-2-vietnamese-600-normal-C5EqHgu0.woff2) format("woff2"),url(./baloo-2-vietnamese-600-normal-CGkk4Wtx.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(./baloo-2-latin-ext-600-normal-DiVeaYrH.woff2) format("woff2"),url(./baloo-2-latin-ext-600-normal-CFaB2nBN.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(./baloo-2-latin-600-normal-tIfxVoAe.woff2) format("woff2"),url(./baloo-2-latin-600-normal-B4tNaogw.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(./baloo-2-devanagari-700-normal-D37Te3iF.woff2) format("woff2"),url(./baloo-2-devanagari-700-normal-CEIF4sJg.woff) format("woff");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(./baloo-2-vietnamese-700-normal-h4tlcePq.woff2) format("woff2"),url(./baloo-2-vietnamese-700-normal-DoF59Mjc.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(./baloo-2-latin-ext-700-normal-Mlh7kdab.woff2) format("woff2"),url(./baloo-2-latin-ext-700-normal-D6LeXASg.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(./baloo-2-latin-700-normal-CqTg7A15.woff2) format("woff2"),url(./baloo-2-latin-700-normal-Ld3Zm3l2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(./baloo-2-devanagari-800-normal-BURIY0wZ.woff2) format("woff2"),url(./baloo-2-devanagari-800-normal-YLp1oUqR.woff) format("woff");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(./baloo-2-vietnamese-800-normal-ConLnEgt.woff2) format("woff2"),url(./baloo-2-vietnamese-800-normal-GQACmpuv.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(./baloo-2-latin-ext-800-normal-C_Iwmf1s.woff2) format("woff2"),url(./baloo-2-latin-ext-800-normal-D-iCxxqE.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:800;src:url(./baloo-2-latin-800-normal-BbF3Etk1.woff2) format("woff2"),url(./baloo-2-latin-800-normal-B8BXfZF7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:500;src:url(./nunito-cyrillic-ext-500-normal-BooqzoBf.woff2) format("woff2"),url(./nunito-cyrillic-ext-500-normal-ryWF3qTI.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:500;src:url(./nunito-cyrillic-500-normal-C7KGZCzc.woff2) format("woff2"),url(./nunito-cyrillic-500-normal-CsSUaxYY.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:500;src:url(./nunito-vietnamese-500-normal-BpqpEYcO.woff2) format("woff2"),url(./nunito-vietnamese-500-normal-9ShSsgIA.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:500;src:url(./nunito-latin-ext-500-normal-DpF2BH_v.woff2) format("woff2"),url(./nunito-latin-ext-500-normal-CVNQN0KE.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:500;src:url(./nunito-latin-500-normal-EugFkASW.woff2) format("woff2"),url(./nunito-latin-500-normal-B5klmw3Q.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2) format("woff2"),url(./nunito-cyrillic-ext-600-normal-vnfu4DTE.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-cyrillic-600-normal-DJGQ2h05.woff2) format("woff2"),url(./nunito-cyrillic-600-normal-BUjmtIuu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-vietnamese-600-normal-BY8O6Cug.woff2) format("woff2"),url(./nunito-vietnamese-600-normal-DO1RqFw5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-latin-ext-600-normal-Dd9Zuxh1.woff2) format("woff2"),url(./nunito-latin-ext-600-normal-BKUpuB78.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-latin-600-normal-Br8yIETf.woff2) format("woff2"),url(./nunito-latin-600-normal-Cd0eNu1l.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2) format("woff2"),url(./nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-cyrillic-700-normal-DP36NgGt.woff2) format("woff2"),url(./nunito-cyrillic-700-normal-DfHRUDv-.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-vietnamese-700-normal-Ch8EUCfz.woff2) format("woff2"),url(./nunito-vietnamese-700-normal-C9SQsXvj.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-latin-ext-700-normal-BWeMsAzO.woff2) format("woff2"),url(./nunito-latin-ext-700-normal-D4woHhbd.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(./nunito-latin-700-normal-OcDqTBcA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-cyrillic-ext-800-normal-B-cvGohL.woff2) format("woff2"),url(./nunito-cyrillic-ext-800-normal-pjRatrRO.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-cyrillic-800-normal-D3igD7Kl.woff2) format("woff2"),url(./nunito-cyrillic-800-normal-DymMgApb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-vietnamese-800-normal-D_CZYdm9.woff2) format("woff2"),url(./nunito-vietnamese-800-normal-Dz0hZPb5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-ext-800-normal-CtU8tJOV.woff2) format("woff2"),url(./nunito-latin-ext-800-normal-CDcxIxx8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(./nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(./nunito-latin-800-normal-D-J0wlBY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--content-max: 115rem;--fs-2xs: .75rem;--fs-xs: .844rem;--fs-sm: .9375rem;--fs-base: 1.0625rem;--fs-md: 1.1875rem;--fs-lg: 1.375rem;--fs-xl: 1.6875rem;--fs-2xl: 2.125rem;--fs-3xl: 2.75rem;--fs-display: 3.5rem;--gm-slate-50: #f0f2f5;--gm-slate-100: #d8dce4;--gm-slate-200: #b5bdcc;--gm-slate-300: #8e99b0;--gm-slate-400: #6e7c97;--gm-slate-500: #5b6b8a;--gm-slate-600: #49576f;--gm-slate-700: #3a4762;--gm-slate-800: #2e3750;--gm-slate-900: #1f253a;--gm-terracotta-50: #fdf5f0;--gm-terracotta-100: #fae8db;--gm-terracotta-200: #f4ccb0;--gm-terracotta-300: #edaa7e;--gm-terracotta-400: #e08b53;--gm-terracotta-500: #c97035;--gm-terracotta-600: #a85a2b;--gm-terracotta-700: #874724;--gm-terracotta-800: #6b3920;--gm-terracotta-900: #4f2a19;--gm-periwinkle-50: #eef0fc;--gm-periwinkle-100: #e7e9fb;--gm-periwinkle-200: #d2d8f5;--gm-periwinkle-300: #9aa6ea;--gm-periwinkle-400: #7c8ce0;--gm-periwinkle-500: #5a68c9;--gm-periwinkle-600: #4a57ad;--gm-periwinkle-700: #3f4b96;--gm-periwinkle-800: #343f7e;--gm-periwinkle-900: #2a3366;--gm-sage-50: #eff8f2;--gm-sage-100: #e6f4ec;--gm-sage-200: #c4e6d3;--gm-sage-300: #9ad3b5;--gm-sage-400: #7cc4a0;--gm-sage-500: #5fb088;--gm-sage-600: #4a9b73;--gm-sage-700: #3d8a66;--gm-amber-50: #fdf6e6;--gm-amber-100: #fbefd3;--gm-amber-200: #f7e0a8;--gm-amber-300: #f0cb73;--gm-amber-400: #ebb84f;--gm-amber-500: #e0a23a;--gm-rose-50: #fdf1ef;--gm-rose-100: #fbe6e2;--gm-rose-200: #f6cfc7;--gm-rose-300: #efa99c;--gm-rose-400: #ea9486;--gm-rose-500: #e68476;--gm-class-ocean-bg: #e8f0f8;--gm-class-ocean-mid: #5a8abf;--gm-class-ocean-base: #3b6fa3;--gm-class-ocean-text: #2e5a85;--gm-class-plum-bg: #f0ecf4;--gm-class-plum-mid: #8b73a8;--gm-class-plum-base: #6f5a8e;--gm-class-plum-text: #5b4670;--gm-class-teal-bg: #e5f2f0;--gm-class-teal-mid: #4d9e8e;--gm-class-teal-base: #3a8375;--gm-class-teal-text: #2b6b5e;--gm-class-clay-bg: #f5ede6;--gm-class-clay-mid: #b8845c;--gm-class-clay-base: #9a6d47;--gm-class-clay-text: #7a5535;--gm-class-coral-bg: #faedeb;--gm-class-coral-mid: #cf7b6f;--gm-class-coral-base: #b5635a;--gm-class-coral-text: #8e4a40;--gm-class-dusk-bg: #edeef3;--gm-class-dusk-mid: #7478a8;--gm-class-dusk-base: #5d608e;--gm-class-dusk-text: #484b72;--gm-class-moss-bg: #edf1e8;--gm-class-moss-mid: #7a9a5e;--gm-class-moss-base: #617e48;--gm-class-moss-text: #4b6338;--gm-class-mauve-bg: #f3ecf0;--gm-class-mauve-mid: #a87b94;--gm-class-mauve-base: #8e637b;--gm-class-mauve-text: #724e64;--gm-neutral-0: #fffdf8;--gm-neutral-50: #fbf7f0;--gm-neutral-100: #f3eee4;--gm-neutral-150: #ede6da;--gm-neutral-200: #e2dac9;--gm-neutral-300: #cdc4b3;--gm-neutral-400: #9b94a0;--gm-neutral-500: #6b697e;--gm-neutral-600: #56546b;--gm-neutral-700: #423f60;--gm-neutral-800: #322e54;--gm-neutral-900: #2e2a52;--gm-bg-app: var(--gm-neutral-50);--gm-bg-surface: var(--gm-neutral-0);--gm-bg-surface-raised: var(--gm-neutral-0);--gm-bg-muted: var(--gm-neutral-100);--gm-bg-overlay: rgba(35, 31, 29, .4);--gm-text-primary: var(--gm-neutral-900);--gm-text-secondary: var(--gm-neutral-600);--gm-text-muted: var(--gm-neutral-400);--gm-text-inverse: var(--gm-neutral-0);--gm-primary: var(--gm-periwinkle-500);--gm-primary-hover: var(--gm-periwinkle-600);--gm-primary-active: var(--gm-periwinkle-700);--gm-primary-subtle: var(--gm-periwinkle-50);--gm-accent: var(--gm-periwinkle-500);--gm-accent-hover: var(--gm-periwinkle-600);--gm-accent-subtle: var(--gm-periwinkle-50);--gm-border-default: var(--gm-neutral-200);--gm-border-subtle: var(--gm-neutral-150);--gm-border-focus: var(--gm-slate-400);--gm-grade-first: var(--gm-sage-500);--gm-grade-two-one: var(--gm-sage-300);--gm-grade-two-two: var(--gm-amber-400);--gm-grade-third: var(--gm-terracotta-400);--gm-grade-fail: var(--gm-rose-400);--gm-status-success: var(--gm-sage-500);--gm-status-warning: var(--gm-amber-500);--gm-status-danger: var(--gm-rose-500);--gm-status-info: var(--gm-slate-400);--slate-50: var(--gm-slate-50);--slate-100: var(--gm-slate-100);--slate-200: var(--gm-slate-200);--slate-300: var(--gm-slate-300);--slate-400: var(--gm-slate-400);--slate-500: var(--gm-slate-500);--slate-600: var(--gm-slate-600);--slate-700: var(--gm-slate-700);--slate-800: var(--gm-slate-800);--slate-900: var(--gm-slate-900);--sage-50: var(--gm-sage-50);--sage-100: var(--gm-sage-100);--sage-300: var(--gm-sage-300);--sage-500: var(--gm-sage-500);--sage-700: var(--gm-sage-700);--amber-50: var(--gm-amber-50);--amber-400: var(--gm-amber-400);--amber-500: var(--gm-amber-500);--rose-50: var(--gm-rose-50);--rose-400: var(--gm-rose-400);--rose-500: var(--gm-rose-500);--ocean-bg: var(--gm-class-ocean-bg);--ocean-mid: var(--gm-class-ocean-mid);--ocean-text: var(--gm-class-ocean-text);--plum-bg: var(--gm-class-plum-bg);--plum-mid: var(--gm-class-plum-mid);--plum-text: var(--gm-class-plum-text);--teal-bg: var(--gm-class-teal-bg);--teal-mid: var(--gm-class-teal-mid);--teal-text: var(--gm-class-teal-text);--clay-bg: var(--gm-class-clay-bg);--clay-mid: var(--gm-class-clay-mid);--clay-text: var(--gm-class-clay-text);--coral-bg: var(--gm-class-coral-bg);--coral-mid: var(--gm-class-coral-mid);--coral-text: var(--gm-class-coral-text);--dusk-bg: var(--gm-class-dusk-bg);--dusk-mid: var(--gm-class-dusk-mid);--dusk-text: var(--gm-class-dusk-text);--moss-bg: var(--gm-class-moss-bg);--moss-mid: var(--gm-class-moss-mid);--moss-text: var(--gm-class-moss-text);--mauve-bg: var(--gm-class-mauve-bg);--mauve-mid: var(--gm-class-mauve-mid);--mauve-text: var(--gm-class-mauve-text);--n-0: var(--gm-neutral-0);--n-50: var(--gm-neutral-50);--n-100: var(--gm-neutral-100);--n-150: var(--gm-neutral-150);--n-200: var(--gm-neutral-200);--n-300: var(--gm-neutral-300);--n-400: var(--gm-neutral-400);--n-500: var(--gm-neutral-500);--n-600: var(--gm-neutral-600);--n-700: var(--gm-neutral-700);--n-800: var(--gm-neutral-800);--n-900: var(--gm-neutral-900);--gm-font-display: "Baloo 2", system-ui, sans-serif;--gm-font-body: "Nunito", system-ui, sans-serif;--gm-text-xs: .75rem;--gm-text-sm: .875rem;--gm-text-base: 1rem;--gm-text-md: 1.125rem;--gm-text-lg: 1.25rem;--gm-text-xl: 1.5rem;--gm-text-2xl: 1.875rem;--gm-text-3xl: 2.25rem;--gm-text-4xl: 3rem;--gm-leading-tight: 1.2;--gm-leading-snug: 1.35;--gm-leading-normal: 1.5;--gm-weight-regular: 400;--gm-weight-medium: 500;--gm-weight-semibold: 600;--gm-weight-bold: 700;--gm-tracking-tight: -.02em;--gm-tracking-normal: 0em;--gm-tracking-wide: .02em;--gm-tracking-wider: .05em;--gm-space-1: .25rem;--gm-space-1-5: .375rem;--gm-space-2: .5rem;--gm-space-2-5: .625rem;--gm-space-3: .75rem;--gm-space-3-5: .875rem;--gm-space-4: 1rem;--gm-space-5: 1.25rem;--gm-space-6: 1.5rem;--gm-space-8: 2rem;--gm-radius-sm: 6px;--gm-radius-8: 8px;--gm-radius-md: 10px;--gm-radius-12: 12px;--gm-radius-lg: 14px;--gm-radius-16: 16px;--gm-radius-xl: 20px;--gm-radius-22: 22px;--gm-radius-2xl: 28px;--gm-radius-full: 9999px;--r-sm: var(--gm-radius-sm);--r-8: var(--gm-radius-8);--r-md: var(--gm-radius-md);--r-12: var(--gm-radius-12);--r-lg: var(--gm-radius-lg);--r-16: var(--gm-radius-16);--r-xl: var(--gm-radius-xl);--r-22: var(--gm-radius-22);--r-2xl: var(--gm-radius-2xl);--r-pill: var(--gm-radius-full);--bw-hair: 1.5px;--bw: 2px;--bw-bold: 2.5px;--bw-heavy: 3px;--gm-shadow-rgb: 54, 50, 48;--gm-shadow-sm: 0 1px 2px rgba(var(--gm-shadow-rgb), .08), 0 2px 6px rgba(var(--gm-shadow-rgb), .1);--gm-shadow-md: 0 2px 5px rgba(var(--gm-shadow-rgb), .09), 0 10px 22px rgba(var(--gm-shadow-rgb), .14);--gm-shadow-lg: 0 5px 12px rgba(var(--gm-shadow-rgb), .12), 0 22px 44px rgba(var(--gm-shadow-rgb), .18);--sh-sm: var(--gm-shadow-sm);--sh-md: var(--gm-shadow-md);--sh-lg: var(--gm-shadow-lg);--gm-highlight: inset 0 1px 0 rgba(255, 255, 255, .65);--hl: var(--gm-highlight);--gm-inset-soft: inset 0 1px 2px rgba(var(--gm-shadow-rgb), .07);--inset-soft: var(--gm-inset-soft);--gm-scrim: rgba(28, 24, 22, .42);--scrim: var(--gm-scrim);--gm-focus-ring: 0 0 0 3px color-mix(in srgb, var(--gm-periwinkle-400) 45%, transparent);--focus-ring: var(--gm-focus-ring);--gm-focus-outline: 2.5px solid var(--color-action);--focus-outline: var(--gm-focus-outline);--gm-sidebar-width: 240px;--gm-header-height: 64px;--ease-out-soft: cubic-bezier(.2, .65, .3, 1);--ease-out-snap: cubic-bezier(.2, .9, .3, 1);--dur-fast: .16s;--dur-base: .28s;--dur-slow: .46s;--ink: #2e2a52;--cream: #fbf7f0;--color-bg: var(--cream);--color-surface: #fffdf8;--color-border: var(--ink);--color-text: var(--ink);--color-action: var(--gm-periwinkle-500);--color-action-hover: var(--gm-periwinkle-600);--color-action-soft: var(--gm-periwinkle-100);--color-on-action: #ffffff;--color-shadow: var(--ink);--apricot: #d9482e;--butter: #f6c453;--coral-accent: #f4806f;--mint: #6fcba0;--sky: #7fb8e6;--pop: 4px 4px 0 var(--color-shadow);--pop-sm: 3px 3px 0 var(--color-shadow);--pressed: 1px 1px 0 var(--color-shadow);--soft-pop: 0 16px 30px -18px rgba(46, 42, 82, .5);--float: 0 24px 48px -24px rgba(46, 42, 82, .55);--spring: cubic-bezier(.34, 1.56, .64, 1);--gm-grid: rgba(90, 104, 201, .1)}[data-theme=dark]{--color-bg: #0b0a12;--color-surface: #16141f;--color-border: #4f4c66;--color-text: #f3f1fb;--color-action: #9aa6ea;--color-action-hover: #b0b9ee;--color-action-soft: #201d3c;--color-on-action: #10101c;--color-shadow: #000000;--gm-grid: rgba(154, 166, 234, .08);--gm-bg-app: #08070d;--gm-bg-surface: #131019;--gm-bg-surface-raised: #1b1826;--gm-bg-muted: #14121c;--gm-bg-overlay: rgba(0, 0, 0, .6);--gm-text-primary: #f0ede8;--gm-text-secondary: #a8a29a;--gm-text-muted: #706a62;--gm-text-inverse: var(--gm-neutral-900);--gm-border-default: #3a3734;--gm-border-subtle: #2e2b28;--gm-border-focus: var(--gm-slate-300);--n-0: #16141f;--n-50: #0b0a12;--n-100: #201d2a;--n-150: #2c2939;--n-200: #423f52;--n-300: #5c5772;--n-400: #807a72;--n-500: #a8a29a;--n-600: #c4beb4;--n-700: #ddd8d0;--n-800: #f0ede8;--n-900: #ffffff;--gm-class-ocean-bg: #1e2c3a;--gm-class-ocean-mid: #6fa0d0;--gm-class-ocean-base: #4f84b6;--gm-class-ocean-text: #a3c4e0;--gm-class-plum-bg: #2a2334;--gm-class-plum-mid: #9f88bc;--gm-class-plum-base: #836ca1;--gm-class-plum-text: #c0add6;--gm-class-teal-bg: #1c2e2b;--gm-class-teal-mid: #62b3a3;--gm-class-teal-base: #4a988a;--gm-class-teal-text: #8dc8bc;--gm-class-clay-bg: #2e2318;--gm-class-clay-mid: #cb9670;--gm-class-clay-base: #ac7b57;--gm-class-clay-text: #d4b08e;--gm-class-coral-bg: #321e1c;--gm-class-coral-mid: #e08f83;--gm-class-coral-base: #c2766a;--gm-class-coral-text: #e8ada5;--gm-class-dusk-bg: #22232e;--gm-class-dusk-mid: #888bbc;--gm-class-dusk-base: #6e72a1;--gm-class-dusk-text: #aeb1cf;--gm-class-moss-bg: #222818;--gm-class-moss-mid: #8dad71;--gm-class-moss-base: #74925a;--gm-class-moss-text: #abc892;--gm-class-mauve-bg: #2e2028;--gm-class-mauve-mid: #bc8fa8;--gm-class-mauve-base: #a2748f;--gm-class-mauve-text: #cda9be;--gm-sage-50: #1e2a21;--gm-amber-50: #2b2418;--gm-rose-50: #2d1c1a;--gm-terracotta-50: #2e2018;--gm-periwinkle-50: #2c1820;--gm-shadow-rgb: 0, 0, 0;--gm-shadow-xs: 0 1px 2px rgba(0, 0, 0, .25);--gm-shadow-sm: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--gm-shadow-md: 0 4px 6px rgba(0, 0, 0, .3), 0 2px 4px rgba(0, 0, 0, .2);--gm-shadow-lg: 0 10px 20px rgba(0, 0, 0, .4), 0 4px 8px rgba(0, 0, 0, .25);--sh-sm: var(--gm-shadow-sm);--sh-md: var(--gm-shadow-md);--sh-lg: var(--gm-shadow-lg);--gm-highlight: inset 0 1px 0 rgba(255, 255, 255, .05);--hl: var(--gm-highlight);--gm-inset-soft: inset 0 1px 2px rgba(0, 0, 0, .35);--gm-scrim: rgba(0, 0, 0, .58);--gm-focus-ring: 0 0 0 3px color-mix(in srgb, var(--gm-periwinkle-400) 45%, transparent);--focus-ring: var(--gm-focus-ring);--gm-focus-outline: 2.5px solid var(--gm-periwinkle-400)}*{box-sizing:border-box}html,body{margin:0;padding:0}html,body{height:100%}html{font-size:clamp(.85rem,min(1.15vw,1.95vh),1.1rem)}*{scrollbar-width:thin;scrollbar-color:var(--gm-neutral-300) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--gm-neutral-300);border:var(--bw) solid transparent;border-radius:var(--r-pill);background-clip:content-box;transition:background-color var(--dur-fast, .16s) var(--ease-out-soft, ease-out)}*::-webkit-scrollbar-thumb:hover{background:var(--gm-neutral-500);background-clip:content-box}*::-webkit-scrollbar-corner{background:transparent}body{font-family:var(--gm-font-body);background:var(--gm-bg-app);color:var(--gm-text-primary);font-size:var(--fs-base);font-weight:var(--gm-weight-semibold);line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;padding:0}input,textarea,select{font-family:inherit}a{color:inherit;text-decoration:none}.fraunces,.page-title,.grade-stat-num,.brand,[class*=fraunces]{font-optical-sizing:auto}.fraunces{font-family:var(--gm-font-display)}.app-shell{--sidebar-w-expanded: 13.5rem;--sidebar-w: 4.25rem;--header-h: 3rem;display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--header-h) 1fr;height:100vh;overflow:hidden;background-color:var(--color-bg);background-image:linear-gradient(var(--gm-grid) 1px,transparent 1px),linear-gradient(90deg,var(--gm-grid) 1px,transparent 1px);background-size:1.625rem 1.625rem;user-select:none;-webkit-user-select:none}body:after{content:"";position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23g)'/%3E%3C/svg%3E");background-size:140px 140px}.stamp{--stamp-c: var(--color-text);display:inline-flex;align-items:center;gap:.3rem;font-family:var(--gm-font-display);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:var(--fs-2xs);line-height:1;color:var(--stamp-c);border:var(--bw-bold) solid var(--stamp-c);border-radius:var(--r-sm);padding:.2rem .5rem;transform:rotate(-4deg);filter:url(#gm-roughen-sm);opacity:.92}.stamp-sage{--stamp-c: var(--sage-500)}.stamp-amber{--stamp-c: var(--amber-500)}.stamp-rose{--stamp-c: var(--rose-500)}.stamp-action{--stamp-c: var(--color-action)}@media(prefers-reduced-motion:reduce){.stamp{filter:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell input,.app-shell textarea,.app-shell [contenteditable=true],.app-shell .user-content,.app-shell .user-content *{user-select:text;-webkit-user-select:text}.app-header{grid-column:1 / -1;position:relative;display:grid;grid-template-columns:var(--sidebar-w) 1fr auto;align-items:center;background:var(--color-surface);border-bottom:var(--bw-bold) solid var(--color-border);padding:0 1rem 0 0;z-index:20}.header-page{position:absolute;top:0;bottom:0;left:var(--sidebar-w);right:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;pointer-events:none;min-width:0;transition:left var(--dur-base) var(--ease-out-soft)}.header-title{font-family:var(--gm-font-display);font-weight:800;font-size:var(--fs-md);color:var(--color-text);letter-spacing:0;line-height:1.1;margin:0}.nav-hamburger{margin-left:.5rem}.brand{display:flex;align-items:center;min-width:0}.logo{display:inline-block;flex:none;background-color:currentColor;-webkit-mask:var(--logo-src) center / contain no-repeat;mask:var(--logo-src) center / contain no-repeat}.header-actions{grid-column:3;display:flex;align-items:center;gap:.5rem}.icon-btn{width:2.25rem;height:2.25rem;border-radius:var(--r-12);display:inline-flex;align-items:center;justify-content:center;color:var(--color-text);transition:background var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--spring);position:relative}.icon-btn:hover{background:var(--color-action-soft);color:var(--color-action)}.icon-btn:active{transform:scale(.92)}.icon-btn-danger:hover{color:var(--rose-500);background:color-mix(in srgb,var(--rose-500) 12%,transparent)}.avatar-btn{cursor:pointer;border:none;padding:0;transition:box-shadow var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-out-soft)}.avatar-btn:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-action) 28%,transparent)}.avatar-btn:active{transform:scale(.94)}.notif-dot{position:absolute;top:.5rem;right:.5625rem;width:.4375rem;height:.4375rem;border-radius:var(--r-pill);background:var(--color-action);border:var(--bw) solid var(--n-100)}.avatar{width:2.125rem;height:2.125rem;flex-shrink:0;border-radius:var(--r-pill);background:var(--n-700);color:var(--n-50);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:500;letter-spacing:.02em}.sidebar{position:fixed;top:var(--header-h);left:0;bottom:0;width:var(--sidebar-w);background:var(--color-surface);border-right:var(--bw-bold) solid var(--color-border);overflow:hidden;z-index:15;transition:width var(--dur-base) var(--spring)}.app-shell:not(.is-narrow) .sidebar:hover{width:var(--sidebar-w-expanded);box-shadow:var(--float)}.sidebar-inner{width:100%;height:100%;padding:.875rem;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;position:relative}.nav-indicator{position:absolute;left:1rem;right:1rem;top:0;background:var(--n-0);border:1px solid var(--n-150);border-radius:var(--r-md);box-shadow:var(--sh-sm);opacity:0;z-index:0;pointer-events:none;transition:transform var(--dur-base) var(--ease-out-soft),height var(--dur-base) var(--ease-out-soft),opacity var(--dur-fast) var(--ease-out-soft);will-change:transform,height}.nav-indicator.is-visible{opacity:1}.signout-link{overflow:hidden}.nav-item-label,.signout-link-label{display:inline-block;white-space:nowrap;overflow:hidden;max-width:0;margin-left:0;opacity:0;transition:max-width var(--dur-base) var(--spring),margin var(--dur-base) var(--spring),opacity var(--dur-fast) var(--ease-out-soft)}.app-shell:not(.is-narrow) .sidebar:hover .nav-item-label,.app-shell:not(.is-narrow) .sidebar:hover .signout-link-label,.app-shell.is-narrow .nav-item-label,.app-shell.is-narrow .signout-link-label{max-width:9rem;margin-left:.5rem;opacity:1}.nav-group{display:flex;flex-direction:column;align-items:flex-start;margin-bottom:1rem}.nav-item{display:inline-flex;align-items:center;color:var(--color-text);font-size:var(--fs-sm);font-weight:800;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-decoration:none;transition:color var(--dur-fast) var(--ease-out-soft)}.nav-item:focus,.signout-link:focus,.breadcrumb-link:focus{outline:none}.nav-item:focus-visible,.signout-link:focus-visible{outline:var(--focus-outline);outline-offset:-2px}.breadcrumb-link:focus-visible{outline:var(--focus-outline);outline-offset:2px;border-radius:.25rem}.nav-item:hover .ico{background:var(--color-action-soft)}.nav-item.active{color:var(--color-action)}.nav-indicator-dot{position:absolute;right:.75rem;top:50%;width:.375rem;height:.375rem;margin-top:-.1875rem;border-radius:var(--r-pill);background:var(--color-action)}.nav-item .ico{flex:none;width:2.5rem;height:2.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-12);color:var(--color-text);transition:background var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft)}.nav-item.active .ico,.nav-item.active:hover .ico{background:var(--color-action);color:var(--color-on-action)}.sidebar-spacer{flex:1}.user-avatar{width:2.125rem;height:2.125rem;background:var(--n-200);color:var(--n-700);border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:600}.grade-stats{display:grid;grid-template-columns:1fr 1fr;padding:.25rem .25rem 0}.grade-stat-block{border-right:1px solid var(--n-150);padding:.25rem .5rem}.grade-stat-block:last-child{border-right:none;padding-left:.875rem}.grade-stat-label{font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--n-400);font-weight:600}.grade-stat-num{font-family:var(--gm-font-display);font-size:var(--fs-xl);color:var(--n-900);font-weight:500;margin-top:.125rem;letter-spacing:-.02em}.user-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.125rem}.signout-link{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;margin-top:.75rem;padding:.375rem .5rem;font-size:var(--fs-2xs);font-weight:500;color:var(--n-500);border-radius:.375rem;transition:color .12s,background .12s,padding var(--dur-base) var(--ease-out-soft)}.app-shell.sidebar-collapsed:not(.is-narrow) .signout-link{padding-left:0;padding-right:0}.signout-link:hover{color:var(--color-action-hover);background:var(--n-100)}.signout-link.active{color:var(--n-900);background:var(--n-100);font-weight:600}.signout-link-danger{color:var(--rose-500)}.signout-link-danger:hover{color:var(--rose-500);background:color-mix(in srgb,var(--rose-500) 10%,transparent)}[data-theme=dark] .signout-link-danger:hover{background:color-mix(in srgb,var(--rose-500) 16%,transparent)}.main{grid-column:2;min-width:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable}.app-shell.is-narrow .main{grid-column:1 / -1}.canvas-inner{width:100%;max-width:var(--content-max);margin:0 auto;padding:1.25rem clamp(1.25rem,3vw,2.5rem) 1.75rem;height:100%;min-height:100%;box-sizing:border-box;display:flex;flex-direction:column}.section-label{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-2xs);font-weight:600;letter-spacing:.14em;color:var(--color-action);text-transform:uppercase;margin-bottom:.5rem}.page-title{font-family:var(--gm-font-display);font-weight:400;font-size:var(--fs-3xl);color:var(--n-900);letter-spacing:-.02em;line-height:1.08;margin:0}.page-title .accent{color:var(--color-action);font-style:italic;font-weight:400}.page-subtitle{font-size:var(--fs-sm);color:var(--n-600);margin:.75rem 0 0;max-width:60ch}.page-subtitle b{color:var(--n-900);font-weight:600}.card{background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--r-16);box-shadow:var(--pop-sm)}.card-pad{padding:var(--gm-space-4) var(--gm-space-5)}.card-head{display:flex;align-items:flex-start;gap:var(--gm-space-3);padding:var(--gm-space-4) var(--gm-space-5) var(--gm-space-3)}.card-head-icon{width:2.25rem;height:2.25rem;border-radius:var(--r-12);border:var(--bw) solid var(--color-border);background:var(--color-action-soft);color:var(--color-action);display:inline-flex;align-items:center;justify-content:center}.card-head-text{flex:1;min-width:0}.card-head-title{font-weight:600;font-size:var(--fs-md);color:var(--n-900);line-height:1.2}.card-head-sub{font-size:var(--fs-xs);color:var(--n-500);margin-top:.125rem}.card-head-action{font-size:var(--fs-xs);color:var(--slate-600);font-weight:500;display:inline-flex;align-items:center;gap:.25rem;cursor:pointer}.card-head-action:hover{color:var(--slate-700)}.badge{display:inline-flex;align-items:center;gap:.375rem;font-size:var(--fs-2xs);font-weight:800;padding:.1875rem .625rem;border:var(--bw) solid var(--color-border);border-radius:var(--gm-radius-full);color:var(--color-text);letter-spacing:.01em}.badge.is-neutral{background:var(--color-surface);color:var(--color-text)}.badge.is-neutral-strong{background:var(--color-action-soft);color:var(--color-text)}.badge.is-positive{background:var(--sage-100);color:var(--sage-700)}.badge.is-positive-strong{background:var(--gm-sage-200);color:var(--sage-700)}.dot{width:.5rem;height:.5rem;border-radius:var(--r-pill);display:inline-block}.trend{font-size:var(--fs-2xs);font-weight:600;display:inline-flex;align-items:center;gap:.125rem}.trend.up{color:var(--sage-500)}.trend.down{color:var(--rose-500)}.trend.flat{color:var(--n-500)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5625rem 1.125rem;border:var(--bw-bold) solid var(--color-border);border-radius:var(--r-pill);font-family:var(--gm-font-body);font-size:var(--fs-sm);font-weight:800;background:var(--color-surface);color:var(--color-text);box-shadow:var(--pop-sm);transition:transform var(--dur-fast) var(--spring),box-shadow var(--dur-fast) var(--ease-out-soft),background-color var(--dur-fast) var(--ease-out-soft)}.btn:hover{transform:translate(-1px,-1px);box-shadow:var(--pop)}.btn:active{transform:translate(2px,2px);box-shadow:var(--pressed)}.btn:disabled,.btn[disabled]{opacity:.45;box-shadow:var(--pressed);transform:none;pointer-events:none}.btn-primary{background:var(--color-action);color:var(--color-on-action)}.btn-primary:hover{background:var(--color-action-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text)}.btn-secondary:hover{background:var(--color-action-soft)}.btn-accent{background:var(--apricot);color:var(--ink)}.btn-ghost{border-color:transparent;box-shadow:none;background:transparent;color:var(--color-action)}.btn-ghost:hover{background:var(--color-action-soft);transform:none;box-shadow:none}.btn-dark{background:var(--color-text);color:var(--color-bg)}.btn-danger{background:var(--rose-500);color:#fff}.btn-danger:hover{background:var(--rose-400)}:where(button,a,input,select,textarea,[role=button],[role=switch],[tabindex]):focus-visible{outline:var(--focus-outline);outline-offset:2px}:where(input,select,textarea):focus-visible{outline-offset:0}:where(button,input,select,textarea):disabled{cursor:not-allowed}:where(input,select,textarea):disabled{opacity:.55}.nav-item,.icon-btn,.signout-link,.card-head-action,.work-row,.timetable-expand,button.card{transition:background-color var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft),border-color var(--dur-fast) var(--ease-out-soft),box-shadow var(--dur-fast) var(--ease-out-soft),transform var(--dur-base) var(--ease-out-snap)}button.card{cursor:pointer}button.card:hover{box-shadow:var(--pop);transform:translate(-1px,-1px)}.row{display:flex;align-items:center}.gap-8{gap:.5rem}.gap-12{gap:.75rem}.gap-16{gap:1rem}.gap-24{gap:1.5rem}.muted{color:var(--n-500)}.tiny{font-size:var(--fs-2xs)}.small{font-size:var(--fs-sm)}.bold{font-weight:600}.eyebrow{font-size:var(--fs-2xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--n-500)}.timetable-expand{width:1.875rem;height:1.875rem;color:var(--n-400);border-radius:var(--r-pill);transition:background var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-out-soft)}.timetable-expand:hover{background:var(--n-100);color:var(--n-800);transform:translate(2px)}.cd-tab-content{margin-top:1.375rem;min-height:22.5rem}.work-row:hover{background:var(--n-100)}.grade-cell{display:inline-flex;align-items:center;justify-content:flex-start;gap:.25rem;padding:.25rem .5rem;margin-left:-.5rem;border-radius:.5rem;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-out-soft)}.grade-cell:hover{background:var(--n-150)}.grade-cell:active{transform:scale(.97)}.inline-grade-editor{transform-origin:left center;animation:inline-editor-in var(--dur-fast) var(--ease-out-soft)}@keyframes inline-editor-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.grade-edit-hint{display:inline-flex;align-items:center;margin-left:.125rem;color:var(--n-400);opacity:0;transition:opacity var(--dur-fast) var(--ease-out-soft)}.work-row:hover .grade-edit-hint,.work-row:focus-within .grade-edit-hint{opacity:.7}.grade-cell:hover .grade-edit-hint{opacity:1;color:var(--n-700)}.work-row-actions{flex:1;display:flex;gap:.125rem;justify-content:flex-end;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out-soft)}.work-row:hover .work-row-actions,.work-row:focus-within .work-row-actions{opacity:1;pointer-events:auto}.work-action{width:1.75rem;height:1.75rem;color:var(--n-400)}.work-action:hover{color:var(--n-800);background:var(--n-150)}.search-root{position:fixed;inset:0;z-index:600;pointer-events:none}.search-root.is-open{pointer-events:auto}.search-backdrop{position:fixed;inset:0;background:var(--gm-bg-overlay);opacity:0;transition:opacity var(--dur-fast) var(--ease-out-snap)}.search-root.is-open .search-backdrop{opacity:1}.search-panel{position:fixed;top:14vh;left:50%;width:calc(100% - 24px);max-width:35rem;background:var(--n-0);border-radius:var(--r-lg);box-shadow:var(--pop);border:var(--bw-bold) solid var(--color-border);overflow:hidden;opacity:0;transform:translate(-50%,4px);transition:opacity var(--dur-fast) var(--ease-out-snap),transform var(--dur-fast) var(--ease-out-snap)}.search-root.is-open .search-panel{opacity:1;transform:translate(-50%)}.search-input-row{display:flex;align-items:center;gap:.75rem;padding:1rem 1.125rem;border-bottom:1px solid var(--n-100);color:var(--n-500)}.search-input{flex:1;border:none;outline:none;background:transparent;font-family:inherit;font-size:var(--fs-base);color:var(--n-900)}.search-input::placeholder{color:var(--n-400)}.search-kbd{font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:500;color:var(--n-500);background:var(--n-100);border:1px solid var(--n-150);border-radius:.3125rem;padding:.125rem .375rem}.search-kbd-btn{cursor:pointer;transition:color .12s,background .12s,border-color .12s}.search-kbd-btn:hover{color:var(--n-800);background:var(--n-200);border-color:var(--n-200)}.search-body{max-height:60vh;overflow-y:auto;padding:.5rem 0}.search-group{padding:.375rem 0}.search-group-label{padding:.25rem 1.125rem;margin-bottom:.125rem}.search-result{width:100%;display:flex;align-items:center;gap:.75rem;padding:.625rem 1.125rem;text-align:left;transition:background-color var(--dur-fast) var(--ease-out-soft)}.search-result.is-active{background:var(--gm-periwinkle-50)}.search-result-icon{width:1.125rem;display:inline-flex;align-items:center;justify-content:center;color:var(--n-500);flex-shrink:0}.search-result-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.0625rem}.search-result-title{font-size:var(--fs-sm);font-weight:500;color:var(--n-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-result-subtitle{font-size:var(--fs-2xs);color:var(--n-500)}.search-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.375rem;padding:2.25rem 1.5rem}.search-empty-icon{width:2.5rem;height:2.5rem;border-radius:var(--r-pill);background:var(--n-100);color:var(--n-500);display:inline-flex;align-items:center;justify-content:center;margin-bottom:.25rem}.search-empty-title{font-size:var(--fs-base);font-weight:500;color:var(--n-900)}.search-empty-body{font-size:var(--fs-xs);color:var(--n-500);max-width:40ch;line-height:1.5}.notifications-panel{position:fixed;top:3.5rem;right:1.5rem;z-index:300;width:22.5rem;max-height:70vh;background:var(--n-0);border:var(--bw-bold) solid var(--color-border);border-radius:var(--r-lg);box-shadow:var(--pop);display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(-6px) scale(.98);pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out-snap),transform var(--dur-fast) var(--ease-out-snap)}.notifications-panel.is-open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.notifications-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem .625rem;border-bottom:1px solid var(--n-100)}.notifications-title{font-size:var(--fs-base);font-weight:500;color:var(--n-900)}.notifications-mark-read{font-size:var(--fs-2xs);font-weight:500;color:var(--slate-600);transition:color var(--dur-fast) var(--ease-out-soft)}.notifications-mark-read:hover{color:var(--slate-700)}.notifications-body{flex:1;overflow-y:auto;padding:.25rem 0}.notification-row{width:100%;display:grid;grid-template-columns:1.125rem 1fr auto;gap:.625rem;align-items:center;padding:.75rem 1rem;text-align:left;transition:background-color var(--dur-fast) var(--ease-out-soft)}.notification-row:hover{background:var(--n-100)}.notification-row-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--n-500)}.notification-row-text{display:flex;flex-direction:column;gap:.125rem;min-width:0}.notification-row-title{font-size:var(--fs-xs);font-weight:500;color:var(--n-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-row-subtitle{font-size:var(--fs-2xs);color:var(--n-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-row-when{font-size:var(--fs-2xs);color:var(--n-500);font-weight:500;white-space:nowrap}.notifications-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.375rem;padding:2.25rem 1.5rem}.notifications-empty-icon{width:2.5rem;height:2.5rem;border-radius:var(--r-pill);background:var(--sage-50);color:var(--sage-500);display:inline-flex;align-items:center;justify-content:center;margin-bottom:.25rem}.notifications-empty-title{font-size:var(--fs-base);font-weight:500;color:var(--n-900)}.notifications-empty-body{font-size:var(--fs-xs);color:var(--n-500);max-width:32ch;line-height:1.5}.alert-root{position:fixed;inset:0;z-index:500;pointer-events:none}.alert-root.is-open{pointer-events:auto}.alert-backdrop{position:fixed;inset:0;background:var(--gm-bg-overlay);opacity:0;transition:opacity var(--dur-fast) var(--ease-out-snap)}.alert-root.is-open .alert-backdrop{opacity:1}.alert-panel{position:fixed;top:50%;left:50%;width:calc(100% - 24px);max-width:26.25rem;background:var(--color-surface);border-radius:var(--r-22);box-shadow:var(--float);border:var(--bw-bold) solid var(--color-border);opacity:0;transform:translate(-50%,calc(-50% + 8px)) scale(.95);transition:opacity var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-out-soft)}.alert-root.is-open .alert-panel{opacity:1;transform:translate(-50%,-50%) scale(1);transition:opacity var(--dur-base) var(--ease-out-soft),transform var(--dur-base) var(--ease-out-soft)}.alert-header{display:flex;gap:1rem;align-items:flex-start;padding:1.375rem 1.375rem .75rem}.alert-icon{flex-shrink:0;width:2.75rem;height:2.75rem;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center}.alert-icon-info,.alert-icon-confirm{background:var(--slate-50);color:var(--slate-600)}.alert-icon-warning{background:var(--amber-50);color:var(--amber-500)}.alert-icon-destructive{background:var(--rose-50);color:var(--rose-500)}.alert-title{font-size:var(--fs-md);font-weight:500;color:var(--n-900);letter-spacing:-.01em;line-height:1.3}.alert-body{font-size:var(--fs-sm);color:var(--n-600);margin-top:.375rem;line-height:1.5}.alert-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.375rem 1.25rem}.drawer-root{position:fixed;inset:0;z-index:400;pointer-events:none}.drawer-root.is-open{pointer-events:auto}.drawer-backdrop{position:absolute;inset:0;background:var(--gm-bg-overlay);opacity:0;transition:opacity var(--dur-base) var(--ease-out-snap)}.drawer-root.is-open .drawer-backdrop{opacity:1}.drawer-panel{position:absolute;top:0;right:0;bottom:0;width:26.25rem;max-width:90vw;background:var(--n-0);border-left:1px solid var(--n-150);box-shadow:-16px 0 40px rgba(var(--gm-shadow-rgb),.08),-2px 0 6px rgba(var(--gm-shadow-rgb),.04);display:flex;flex-direction:column;transform:translate(100%);transition:transform var(--dur-base) var(--ease-out-snap)}.drawer-root.is-open .drawer-panel{transform:translate(0)}.drawer-accent{position:absolute;left:0;top:0;bottom:0;width:4px}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1.375rem 1.5rem 1rem;border-bottom:1px solid var(--n-100);flex-shrink:0}.drawer-title{font-size:var(--fs-lg);font-weight:500;color:var(--n-900);letter-spacing:-.01em}.drawer-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem 1.5rem}.drawer-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid var(--n-100);background:var(--n-0);flex-shrink:0}.toggle{width:2.375rem;height:1.375rem;border-radius:var(--r-pill);background:var(--n-200);position:relative;flex-shrink:0;transition:background-color var(--dur-fast) var(--ease-out-soft)}.toggle[data-checked=true]{background:var(--color-action)}.toggle-thumb{position:absolute;top:.125rem;left:.125rem;width:1.125rem;height:1.125rem;border-radius:var(--r-pill);background:var(--color-surface);border:var(--bw-hair) solid var(--color-border);transition:left var(--dur-fast) var(--ease-out-soft),width var(--dur-fast) var(--ease-out-soft)}.toggle[data-checked=true] .toggle-thumb{left:1.125rem}@media(hover:hover)and (pointer:fine){.toggle:hover .toggle-thumb{width:1.25rem}}.toggle:active .toggle-thumb{width:1.3125rem}.toggle[data-checked=true]:active .toggle-thumb{left:.9375rem}.otp-group[data-error=true] .form-input{border-color:var(--rose-500);color:var(--rose-500)}.otp-group[data-error=true]{animation:otp-shake .4s var(--ease-out-soft)}@keyframes otp-shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.form-row{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1.125rem}.form-label{font-size:var(--fs-2xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--n-500)}.field-error{font-size:var(--fs-2xs);font-weight:600;color:var(--rose-500);margin-top:.125rem}.form-hint{font-size:var(--fs-2xs);color:var(--n-500);margin-top:.125rem}.form-input,.form-textarea,.form-select{width:100%;padding:.6875rem .875rem;border:var(--bw-bold) solid var(--color-border);border-radius:var(--r-12);font-size:var(--fs-sm);font-family:inherit;font-weight:600;color:var(--color-text);background:var(--color-bg);outline:none;transition:border-color var(--dur-fast) var(--ease-out-soft),box-shadow var(--dur-fast) var(--ease-out-soft)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--color-action);box-shadow:var(--pop-sm)}.form-textarea{resize:vertical;min-height:5rem;line-height:1.5}.form-select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23827B71' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:2.25rem}input[type=number]{-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=month]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.5;border-radius:.25rem;padding:.125rem;transition:opacity var(--dur-fast) var(--ease-out-soft)}input[type=date]::-webkit-calendar-picker-indicator:hover,input[type=time]::-webkit-calendar-picker-indicator:hover,input[type=datetime-local]::-webkit-calendar-picker-indicator:hover,input[type=month]::-webkit-calendar-picker-indicator:hover{opacity:1}[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator,[data-theme=dark] input[type=time]::-webkit-calendar-picker-indicator,[data-theme=dark] input[type=datetime-local]::-webkit-calendar-picker-indicator,[data-theme=dark] input[type=month]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.6}[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator:hover,[data-theme=dark] input[type=time]::-webkit-calendar-picker-indicator:hover,[data-theme=dark] input[type=datetime-local]::-webkit-calendar-picker-indicator:hover,[data-theme=dark] input[type=month]::-webkit-calendar-picker-indicator:hover{opacity:1}.segmented{display:inline-flex;background:var(--color-bg);border:var(--bw-bold) solid var(--color-border);border-radius:var(--r-pill);padding:.25rem;gap:.25rem;width:100%}.segmented-option{flex:1;padding:.4375rem .625rem;font-size:var(--fs-xs);font-weight:800;color:var(--color-text);border-radius:var(--r-pill);transition:background-color var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft)}.segmented-option:hover{color:var(--color-action)}.segmented-option.is-active{background:var(--color-action);color:var(--color-on-action);box-shadow:var(--pop-sm)}.is-ghost{opacity:.8;border-color:var(--n-200)!important;border-style:dashed!important;transition:opacity var(--dur-fast) var(--ease-out-soft)}.is-ghost:hover{opacity:1}.card-stripe{position:absolute;left:0;top:0;bottom:0;width:4px;transition:opacity var(--dur-fast) var(--ease-out-soft)}.is-ghost .card-stripe{opacity:.5}.card-footer-sep{border-top:1px solid var(--n-100);transition:border-color var(--dur-fast) var(--ease-out-soft)}.is-ghost .card-footer-sep{border-top-style:dashed;border-top-color:var(--n-200)}.empty-state,.error-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:2rem 1.5rem;color:var(--n-600)}.empty-state-icon,.error-state-icon{width:2.75rem;height:2.75rem;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center;margin-bottom:.25rem}.empty-state-icon{border:var(--bw) solid var(--color-border);border-radius:var(--r-16);background:var(--color-action-soft);color:var(--color-action)}.error-state-icon{border:var(--bw) solid var(--color-border);border-radius:var(--r-16);background:var(--rose-100);color:var(--rose-500)}.empty-state-title,.error-state-title{font-size:var(--fs-md);font-weight:700;color:var(--n-900);letter-spacing:-.01em}.empty-state-body,.error-state-body{font-size:var(--fs-xs);color:var(--n-500);max-width:40ch;line-height:1.5}.empty-state-action,.error-state-action{margin-top:.75rem}.chip{display:inline-flex;align-items:center;gap:.375rem;border:var(--bw-bold) solid var(--color-border);background:var(--color-surface);border-radius:var(--r-pill);padding:.4375rem .875rem;font-weight:800;font-size:var(--fs-xs);color:var(--color-text);box-shadow:var(--pop-sm);cursor:pointer;transition:transform var(--dur-fast) var(--spring),background var(--dur-fast) var(--ease-out-soft)}.chip:hover{transform:translate(-1px,-1px)}.chip:active{transform:translate(1px,1px);box-shadow:var(--pressed, var(--pop-sm))}.chip.is-selected,.chip.sel{background:var(--color-action);color:var(--color-on-action)}.bar{height:.875rem;border:var(--bw-bold) solid var(--color-border);border-radius:var(--r-pill);background:var(--color-bg);overflow:hidden}.bar>i{display:block;height:100%;background:var(--color-action);border-right:var(--bw-bold) solid var(--color-border)}.sticker{display:inline-flex;align-items:center;gap:.375rem;font-weight:800;font-size:var(--fs-xs);color:var(--ink);border:var(--bw-bold) solid var(--color-border);border-radius:var(--r-pill);padding:.3125rem .75rem;box-shadow:var(--pop-sm)}.lrow{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;border:var(--bw) solid var(--color-border);border-radius:var(--r-12);background:var(--color-surface);box-shadow:var(--pop-sm)}.tabs{display:flex;gap:.375rem;border-bottom:var(--bw-bold) solid var(--color-border)}.tabs>button{border:var(--bw-bold) solid var(--color-border);border-bottom:0;background:var(--color-bg);font-family:var(--gm-font-body);font-weight:800;font-size:var(--fs-sm);color:var(--color-text);opacity:.6;padding:.5625rem 1rem;border-radius:var(--r-12) 12px 0 0;cursor:pointer;margin-bottom:-2.5px}.tabs>button.is-active,.tabs>button.on{background:var(--color-surface);opacity:1}.acc{border:var(--bw-bold) solid var(--color-border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--pop-sm)}.acc-head{padding:.875rem 1rem;font-weight:800;cursor:pointer;display:flex;justify-content:space-between;align-items:center;background:var(--color-surface)}.acc-head+.acc-head{border-top:var(--bw) solid var(--color-border)}.acc-body{background:var(--color-bg)}input[type=range].slider{-webkit-appearance:none;appearance:none;height:.875rem;border-radius:var(--r-pill);border:var(--bw-bold) solid var(--color-border);background:var(--color-action-soft);cursor:pointer}input[type=range].slider::-webkit-slider-thumb{-webkit-appearance:none;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--color-action);border:var(--bw-bold) solid var(--color-border);box-shadow:var(--pop-sm)}.skeleton{background:linear-gradient(90deg,var(--n-100) 0%,var(--n-150) 50%,var(--n-100) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes drawline{to{stroke-dashoffset:0}}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes gm-node-pop{0%{transform:scale(.9);opacity:0}60%{transform:scale(1.12);opacity:1}to{transform:scale(1);opacity:1}}@keyframes gm-bloom{0%{opacity:0;transform:translate(-50%,calc(-100% - 18px)) scale(.96)}to{opacity:1;transform:translate(-50%,calc(-100% - 28px)) scale(1)}}.wi-slider{-webkit-appearance:none;appearance:none;width:100%;height:2.75rem;background:transparent;cursor:pointer;outline:none}.wi-slider::-webkit-slider-runnable-track{height:.5rem;border-radius:var(--r-pill);background:linear-gradient(to right,var(--track) 0 var(--fill),var(--n-150) var(--fill) 100%)}.wi-slider::-moz-range-track{height:.5rem;border-radius:var(--r-pill);background:linear-gradient(to right,var(--track) 0 var(--fill),var(--n-150) var(--fill) 100%)}.wi-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:1.25rem;height:1.25rem;border-radius:var(--r-pill);background:var(--n-0);border:var(--bw) solid var(--track);margin-top:-.375rem;cursor:grab;transition:transform var(--dur-fast) var(--ease-out-soft)}.wi-slider::-webkit-slider-thumb:hover{transform:scale(1.12)}.wi-slider:active::-webkit-slider-thumb{transform:scale(1.04);cursor:grabbing}.wi-slider:focus-visible::-webkit-slider-thumb{box-shadow:var(--focus-ring)}.wi-slider::-moz-range-thumb{width:1.25rem;height:1.25rem;border-radius:var(--r-pill);background:var(--n-0);border:var(--bw) solid var(--track);cursor:grab;transition:transform var(--dur-fast) var(--ease-out-soft)}.wi-slider:active::-moz-range-thumb{transform:scale(1.04);cursor:grabbing}.wi-slider:focus-visible::-moz-range-thumb{box-shadow:var(--focus-ring)}.today-hero{position:relative;flex-shrink:0;margin-top:-1.25rem;margin-bottom:0;margin-left:calc(-1*clamp(1.25rem,3vw,2.5rem) - max(0px,(100vw - var(--sidebar-w) - var(--content-max)) / 2));margin-right:calc(-1*clamp(1.25rem,3vw,2.5rem) - max(0px,(100vw - var(--sidebar-w) - var(--content-max)) / 2));padding:1.5rem clamp(1.75rem,3.2vw,3.25rem) 1.5rem;border-radius:0 0 1.375rem 1.375rem;background:linear-gradient(115deg,var(--hero-bg) 0%,color-mix(in srgb,var(--hero-mid) 14%,var(--hero-bg)) 100%);border-bottom:1px solid color-mix(in srgb,var(--hero-mid) 24%,var(--n-150));box-shadow:0 14px 30px -22px color-mix(in srgb,var(--hero-mid) 40%,transparent);overflow:hidden;animation:hero-rise var(--dur-slow) var(--ease-out-soft) both}.today-hero:before{content:"";position:absolute;inset:-30% -20%;background:radial-gradient(ellipse 50% 45% at 30% 35%,color-mix(in srgb,var(--hero-mid) 22%,transparent) 0%,transparent 65%);pointer-events:none;z-index:0;animation:hero-drift 14s ease-in-out infinite alternate}.today-hero>*{position:relative;z-index:1}@keyframes hero-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-drift{0%{transform:translate(-2%,-2%)}to{transform:translate(8%,4%)}}.today-hero-now{display:inline-flex;align-items:center;gap:.5rem;padding:.3125rem .625rem .3125rem .5rem;border-radius:var(--r-pill);background:color-mix(in srgb,var(--hero-mid) 22%,var(--n-0));color:var(--hero-text);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;border:1px solid color-mix(in srgb,var(--hero-mid) 35%,transparent)}.today-hero-now-dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--hero-text);animation:hero-now-pulse 1.6s ease-in-out infinite}.today-hero-attended{display:inline-flex;align-items:center;gap:.25rem;margin-left:.5rem;padding-left:.5rem;border-left:1px solid color-mix(in srgb,var(--hero-mid) 35%,transparent);color:var(--sage-700, var(--hero-text));font-weight:700}@keyframes hero-now-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.today-timeline{position:relative}.today-timeline-line{position:absolute;left:78.5px;top:12px;bottom:12px;width:3px;background:var(--n-150);border-radius:var(--r-pill);z-index:0}.today-timeline-line-fill{position:absolute;left:78.5px;top:12px;width:3px;border-radius:var(--r-pill);z-index:0;background:linear-gradient(to bottom,var(--n-300) 0%,var(--n-500) 100%);transition:height .6s var(--ease-out-soft)}.today-timeline-now{position:absolute;left:80px;width:11px;height:11px;margin-left:-5.5px;margin-top:-5.5px;border-radius:var(--r-pill);background:var(--n-700);box-shadow:0 0 0 3px var(--n-0);z-index:3;transition:top .6s var(--ease-out-soft)}.today-timeline-rowwrap{position:relative}.today-timeline-rowwrap:before{content:"";position:absolute;top:50%;transform:translateY(-50%);left:80px;width:20px;height:2px;background:var(--row-mid);opacity:.4;z-index:0}.today-timeline-row{display:grid;grid-template-columns:60px 16px 1fr;align-items:center;gap:12px;padding:.875rem 0;text-align:left;width:100%;animation:timeline-row-in var(--dur-base) var(--ease-out-soft) both}.today-timeline-row:hover .today-timeline-card{transform:translateY(-2px);box-shadow:var(--sh-md);border-color:color-mix(in srgb,var(--row-mid) 32%,var(--n-150))}.today-timeline-row.is-past{opacity:.62}.today-timeline-row.is-attended .today-timeline-card svg{color:var(--row-mid);flex-shrink:0}.today-timeline-card-info{min-width:0}.today-timeline-card-line2{position:relative;margin-top:.1875rem;min-height:1.75rem;display:flex;align-items:center}.today-timeline-meta{display:flex;gap:.625rem;transition:opacity var(--dur-fast) var(--ease-out-soft)}.today-timeline-rowactions{position:absolute;left:0;top:50%;transform:translateY(-50%);display:flex;gap:.375rem;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out-soft)}.today-timeline-rowactions .btn{font-size:var(--fs-xs);padding:.3125rem .6875rem;white-space:nowrap}.today-timeline-badge{transition:opacity var(--dur-fast) var(--ease-out-soft)}.today-timeline-rowwrap:hover .today-timeline-meta,.today-timeline-rowwrap:focus-within .today-timeline-meta{opacity:0}.today-timeline-rowwrap:hover .today-timeline-rowactions,.today-timeline-rowwrap:focus-within .today-timeline-rowactions{opacity:1;pointer-events:auto}.today-timeline-rowwrap:hover .today-timeline-badge,.today-timeline-rowwrap:focus-within .today-timeline-badge{opacity:0;pointer-events:none}.today-timeline-dot.is-now>*{visibility:hidden}.today-timeline-break{display:grid;grid-template-columns:60px 16px 1fr;align-items:center;gap:12px;padding:4px 0;animation:timeline-row-in var(--dur-base) var(--ease-out-soft) both}.today-timeline-break-spine{min-height:18px}.today-timeline-break-label{display:flex;align-items:center;gap:10px}.today-timeline-break-rule{flex:1;border-top:1px dashed var(--n-250, var(--n-200))}.today-timeline-break-text{white-space:nowrap;font-size:var(--fs-2xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--n-400)}.today-notepad-main{display:flex;flex-direction:column;min-height:0}.today-notepad-title{margin-bottom:.25rem}.today-timeline-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;margin-top:.625rem;scrollbar-gutter:stable}.today-pad{flex:1 1 auto;min-height:0;display:flex;margin-top:1.375rem}.today-notepad{position:relative;flex:1 1 auto;min-height:0;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:.625rem;padding:1.25rem 1.375rem 1.125rem;background:var(--n-0);border:1px solid var(--n-150);border-radius:.25rem .25rem .875rem .875rem;box-shadow:0 18px 44px -26px rgba(var(--gm-shadow-rgb),.4),inset 0 1px #ffffff80}.today-notepad:before{content:"";position:absolute;top:0;left:0;right:0;height:9px;border-radius:4px 4px 0 0;background:radial-gradient(circle at 14px 50%,var(--n-0) 2px,transparent 2.5px) 0 0 / 28px 9px repeat-x,linear-gradient(var(--n-150),var(--n-100));border-bottom:1px solid var(--n-150)}.today-notepad-main{position:relative;padding-top:.375rem}.today-stickers{display:flex;flex-direction:column;gap:1rem;padding:.75rem .75rem .375rem;min-height:0}.today-stickers>*{position:relative;flex:0 1 auto;min-height:0;overflow:hidden;box-shadow:0 12px 26px -14px rgba(var(--gm-shadow-rgb),.34);transition:transform var(--dur-base) var(--ease-out-soft),box-shadow var(--dur-base) var(--ease-out-soft)}.today-stickers>*:first-child{transform:rotate(-1.3deg)}.today-stickers>*:last-child{transform:rotate(1deg)}.today-stickers>*:hover{transform:rotate(0) translateY(-3px);box-shadow:0 18px 34px -14px rgba(var(--gm-shadow-rgb),.4);z-index:2}.today-stickers>*:after{content:"";position:absolute;top:.4rem;left:50%;width:16px;height:16px;margin-left:-8px;border-radius:var(--r-pill);background:var(--color-action);box-shadow:0 3px 5px -1px rgba(var(--gm-shadow-rgb),.4);z-index:4}.up-next{display:flex;flex-direction:column;gap:.625rem;padding:1rem 1.25rem 1.25rem}.up-next-feature{position:relative;overflow:hidden;padding:1rem 1.25rem 1.25rem;border-radius:.875rem;background:linear-gradient(120deg,var(--row-bg) 0%,color-mix(in srgb,var(--row-mid) 18%,var(--row-bg)) 100%);border:1px solid color-mix(in srgb,var(--row-mid) 26%,transparent);box-shadow:0 10px 26px -18px color-mix(in srgb,var(--row-mid) 50%,transparent);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out-soft),box-shadow var(--dur-fast) var(--ease-out-soft)}.up-next-feature:hover{transform:translateY(-1px);box-shadow:0 14px 30px -18px color-mix(in srgb,var(--row-mid) 62%,transparent)}.up-next-feature:active{transform:translateY(0)}.up-next-count{font-size:var(--fs-xl);font-weight:500;letter-spacing:-.01em;line-height:1;color:var(--n-900)}.up-next-name{font-size:var(--fs-md);font-weight:600;color:var(--n-900);margin-top:.5rem}.up-next-meta{display:flex;flex-wrap:wrap;gap:.875rem;margin-top:.625rem;font-size:var(--fs-xs);color:var(--n-600)}.up-next-meta svg{color:var(--row-mid)}.up-next-badge{position:absolute;top:1.25rem;right:1.25rem}.up-next-then{display:flex;align-items:center;gap:.5rem;padding:.25rem .125rem 0;font-size:var(--fs-xs);color:var(--n-600);width:100%;text-align:left;border-radius:.5rem;transition:background var(--dur-fast) var(--ease-out-soft)}.up-next-then:hover{background:var(--n-100)}.up-next-then-label{font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--n-400);margin-right:.125rem}.up-next-then-time{font-weight:600;color:var(--n-800)}.up-next-then-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.up-next-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.25rem;padding:1.75rem 1rem;color:var(--sage-600, var(--sage-500))}.up-next-empty-title{font-size:var(--fs-md);color:var(--n-900);margin-top:.25rem}.up-next-empty-sub{font-size:var(--fs-xs);color:var(--n-500)}.up-next-feature:before{content:"";position:absolute;inset:-40% -25%;background:radial-gradient(ellipse 50% 45% at 30% 35%,color-mix(in srgb,var(--row-mid) 20%,transparent) 0%,transparent 65%);pointer-events:none;z-index:0;animation:hero-drift 14s ease-in-out infinite alternate}.up-next-feature>*{position:relative;z-index:1}.day-rhythm{display:flex;flex-direction:column;gap:.625rem;padding:1rem 1.25rem 1.25rem}.day-rhythm-bar{position:relative;height:.625rem;flex-shrink:0;border-radius:var(--r-pill);background:var(--n-100);box-shadow:inset 0 1px 2px rgba(var(--gm-shadow-rgb),.06);overflow:hidden;margin-top:.125rem}.day-rhythm-block{position:absolute;top:0;bottom:0;border-radius:var(--r-pill);transition:left var(--dur-base) var(--ease-out-soft),width var(--dur-base) var(--ease-out-soft),opacity var(--dur-base) var(--ease-out-soft)}.day-rhythm-block.is-past{opacity:.5}.day-rhythm-block.is-now{box-shadow:0 0 0 2px var(--n-0),0 0 0 4px color-mix(in srgb,var(--n-700) 18%,transparent)}.day-rhythm-marker{position:absolute;top:-.1875rem;bottom:-.1875rem;width:.125rem;margin-left:-.0625rem;background:var(--n-800);border-radius:var(--r-pill);z-index:2;box-shadow:0 0 0 2px var(--n-0);transition:left var(--dur-base) var(--ease-out-soft)}.day-rhythm-scale{display:flex;justify-content:space-between;font-size:var(--fs-2xs);color:var(--n-400);margin-top:-.25rem}.day-rhythm-stats{display:flex;flex-direction:column;gap:.5rem;margin-top:.125rem}.day-rhythm-stat{display:flex;align-items:center;gap:.5625rem;font-size:var(--fs-sm);color:var(--n-600)}.day-rhythm-stat svg{color:var(--n-400);flex-shrink:0}.day-rhythm-stat b{color:var(--n-900);font-weight:600}@keyframes timeline-row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.today-timeline-row.is-past{animation:timeline-row-in-past var(--dur-base) var(--ease-out-soft) both}@keyframes timeline-row-in-past{0%{opacity:0;transform:translateY(6px)}to{opacity:.55;transform:translateY(0)}}.today-timeline-dot{display:flex;justify-content:center;position:relative;z-index:1}.today-timeline-dot-marker{width:12px;height:12px;border-radius:var(--r-pill);background:var(--row-mid);box-shadow:0 0 0 3px var(--n-0)}.today-timeline-dot-current{width:16px;height:16px;border-radius:var(--r-pill);background:var(--row-mid);box-shadow:0 0 0 3px var(--n-0),0 0 0 7px color-mix(in srgb,var(--row-mid) 22%,transparent);animation:timeline-current-pulse 2.2s ease-in-out infinite}@keyframes timeline-current-pulse{0%,to{box-shadow:0 0 0 3px var(--n-0),0 0 0 7px color-mix(in srgb,var(--row-mid) 22%,transparent)}50%{box-shadow:0 0 0 3px var(--n-0),0 0 0 11px color-mix(in srgb,var(--row-mid) 8%,transparent)}}.today-timeline-dot-past{width:18px;height:18px;border-radius:var(--r-pill);background:var(--row-mid);color:var(--n-0);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px var(--n-0)}.today-timeline-card{cursor:pointer;background:color-mix(in srgb,var(--row-bg) 50%,var(--n-0));border:1px solid color-mix(in srgb,var(--row-mid) 16%,var(--n-150));border-left:var(--bw-heavy) solid var(--row-mid);border-radius:.75rem;padding:.875rem 1rem;display:grid;grid-template-columns:1fr auto;align-items:center;gap:.625rem;box-shadow:var(--sh-sm);transition:transform var(--dur-fast) var(--ease-out-soft),box-shadow var(--dur-fast) var(--ease-out-soft),border-color var(--dur-fast) var(--ease-out-soft)}.today-timeline-row.is-current .today-timeline-card{position:relative;overflow:hidden;background:linear-gradient(115deg,var(--row-bg) 0%,color-mix(in srgb,var(--row-mid) 16%,var(--row-bg)) 100%);border-color:color-mix(in srgb,var(--row-mid) 32%,transparent);box-shadow:0 10px 26px -16px color-mix(in srgb,var(--row-mid) 45%,transparent),var(--sh-sm)}.today-timeline-row.is-current .today-timeline-card:before{content:"";position:absolute;inset:-40% -20%;background:radial-gradient(ellipse 50% 45% at 28% 40%,color-mix(in srgb,var(--row-mid) 20%,transparent) 0%,transparent 65%);pointer-events:none;z-index:0;animation:hero-drift 14s ease-in-out infinite alternate}.today-timeline-row.is-current .today-timeline-card>*{position:relative;z-index:1}.today-timeline-row.is-current .today-timeline-rowactions{z-index:2}.today-timeline-placeholder{display:grid;grid-template-columns:60px 16px 1fr;align-items:center;gap:12px;padding:10px 0;opacity:.7}.today-timeline-placeholder-dot{width:10px;height:10px;border-radius:var(--r-pill);border:var(--bw-hair) dashed var(--n-300);background:transparent;margin:0 auto}.today-timeline-placeholder-card{background:transparent;border:1px dashed var(--n-200);border-radius:var(--r-md);padding:11px 14px;color:var(--n-500);font-size:var(--fs-xs);font-style:italic}.classification-bar{display:flex;flex-direction:column;gap:.5rem}.classification-bar.is-compact{gap:.375rem}.classification-bar.is-compact .classification-bar-grade{font-size:var(--fs-md)}.classification-bar.is-compact .classification-bar-foot{font-size:var(--fs-2xs)}.classification-bar-track{display:grid;grid-template-columns:repeat(5,1fr);height:.875rem;border-radius:var(--r-pill);overflow:hidden;background:var(--n-100);box-shadow:inset 0 1px 2px rgba(var(--gm-shadow-rgb),.06);position:relative;transition:background var(--dur-base) var(--ease-out-soft)}.classification-bar-seg{height:100%;transition:background .18s,opacity var(--dur-base) var(--ease-out-soft)}.classification-bar-seg.is-current{filter:saturate(1.05) brightness(1.02)}.classification-bar-seg-fail{background:color-mix(in srgb,var(--rose-500) 60%,var(--n-100))}.classification-bar-seg-3rd{background:color-mix(in srgb,var(--rose-500) 35%,var(--n-100))}.classification-bar-seg-22{background:color-mix(in srgb,var(--amber-500) 50%,var(--n-100))}.classification-bar-seg-21{background:color-mix(in srgb,var(--sage-500) 45%,var(--n-100))}.classification-bar-seg-1st{background:color-mix(in srgb,var(--sage-500) 75%,var(--n-100))}.classification-bar-marker{position:absolute;top:-.25rem;bottom:-.25rem;width:.25rem;border-radius:var(--r-pill);background:var(--n-900);box-shadow:0 0 0 3px var(--n-0),0 2px 6px #0000002e;transform:translate(-50%);transition:left var(--dur-base) var(--ease-out-soft),opacity var(--dur-base) var(--ease-out-soft)}[data-theme=dark] .classification-bar-marker{background:var(--n-50);box-shadow:0 0 0 3px var(--n-100),0 2px 6px #00000080}.classification-bar-labels{display:grid;grid-template-columns:repeat(5,1fr);font-size:var(--fs-2xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--n-500);text-align:center}.classification-bar-labels span.is-current{color:var(--n-900)}.classification-bar-foot{display:flex;justify-content:space-between;align-items:baseline;margin-top:.125rem}.classification-bar-current{display:flex;align-items:baseline;gap:.5rem}.classification-bar-grade{font-family:var(--gm-font-display);font-size:var(--fs-2xl);font-weight:500;color:var(--n-900);letter-spacing:-.02em;line-height:1;transition:font-size var(--dur-base) var(--ease-out-soft)}.classification-bar-grade-pct{font-size:var(--fs-sm);color:var(--n-400);font-weight:500}.classification-bar-class{font-family:var(--gm-font-display);font-size:var(--fs-lg);font-weight:500;color:var(--current-band-color, var(--n-900));letter-spacing:-.02em;transition:opacity var(--dur-base) var(--ease-out-soft)}.classification-bar-next{font-size:var(--fs-2xs);color:var(--n-500);transition:opacity var(--dur-base) var(--ease-out-soft)}.classification-bar-next b{color:var(--n-900);font-weight:600}.home-page{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:1.25rem;--home-surface: color-mix(in srgb, var(--color-action) 6%, var(--color-surface))}.home-hero,.home-rail-card,.home-timeline-card,.home-classes-card,.home-nextaction{background:var(--home-surface)}.home-hero,.home-nextaction{box-shadow:var(--pop);border-width:var(--bw-bold)}.home-greet{flex:none;display:flex;align-items:center;gap:.875rem}.home-greet-title{margin:0;font-size:var(--fs-xl);font-weight:800;color:var(--color-text);line-height:1.1}.home-live-pill{display:inline-flex;align-items:center;gap:.4rem;margin-top:.35rem;padding:.15rem .6rem .15rem .5rem;font-size:var(--fs-2xs);font-weight:800;color:var(--sage-700);background:var(--sage-100);border:var(--bw) solid var(--color-border);border-radius:var(--gm-radius-full);box-shadow:var(--pop-sm)}.home-live-pill-dot{width:.45rem;height:.45rem;flex:none;border-radius:var(--r-pill);background:var(--sage-500);animation:home-live-pulse 2s var(--ease-out-soft) infinite}@keyframes home-live-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--sage-500) 55%,transparent)}70%,to{box-shadow:0 0 0 6px transparent}}.home-row1{display:grid;grid-template-columns:1.55fr 1fr;grid-template-rows:auto;gap:1.25rem;flex:none}.home-rail{display:flex;flex-direction:column;gap:1.25rem;min-height:0}.home-row3{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:minmax(0,1fr);gap:1.25rem;flex:1 1 0;min-height:0}.home-hero{padding:1.125rem 1.5rem 1.25rem;display:flex;flex-direction:column;min-height:0}.home-hero-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.home-hero-open{padding-block:.25rem;font-size:var(--fs-xs)}.home-hero-status{display:flex;align-items:center;gap:.75rem}.home-hero-headline{margin:0;font-size:var(--fs-2xl);font-weight:800;color:var(--color-text);line-height:1.1}.home-stamp{display:inline-block;font-family:var(--gm-font-display);font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:var(--fs-sm);color:var(--c);border:var(--bw-heavy) solid var(--c);border-radius:7px;padding:0 .5rem;transform:rotate(-6deg)}.home-hero-avg{font-family:var(--gm-font-display);font-size:var(--fs-xl);font-weight:800;color:var(--color-text);line-height:1}.home-gap{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;gap:1.5rem;margin-top:.875rem}.home-gap-figures{display:flex;align-items:center;gap:1rem;color:var(--n-400)}.home-gap-figure-top{display:flex;align-items:center;gap:.5rem}.home-gap-num{font-family:var(--gm-font-display);font-size:var(--fs-display);font-weight:800;line-height:1;color:var(--color-text)}.home-band-sticker{font-family:var(--gm-font-display);font-size:var(--fs-lg);font-weight:800;line-height:1;color:var(--c);background:color-mix(in srgb,var(--c) 16%,var(--color-surface));border:var(--bw-bold) solid var(--c);border-radius:var(--r-md);padding:.25rem .5rem;transform:rotate(-4deg)}.home-gap-sub{margin-top:.5rem;font-size:var(--fs-sm)}.home-gap-chip,.home-gap-trend{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--gm-font-display);font-weight:800;font-size:var(--fs-sm);color:var(--c);background:color-mix(in srgb,var(--c) 14%,var(--color-surface));border:var(--bw) solid var(--c);border-radius:var(--gm-radius-full);padding:.15rem .6rem;white-space:nowrap}.home-gap-caption{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .875rem;font-size:var(--fs-md);line-height:1.4}.home-gap-line{margin:0;font-size:var(--fs-lg);font-weight:500;line-height:1.35;color:var(--color-text)}.home-gapbar{position:relative;padding:2.35rem 0 1.35rem}.home-gapbar-track{position:relative;height:.9rem;border:var(--bw-bold) solid var(--color-border);border-radius:var(--gm-radius-full);background:color-mix(in srgb,var(--color-action) 8%,var(--color-surface))}.home-gapbar-line{position:absolute;top:-2.5px;bottom:-2.5px;width:2px;margin-left:-1px;background:color-mix(in srgb,var(--color-border) 45%,transparent);z-index:1}.home-gapbar-line-label{position:absolute;top:calc(100% + .35rem);left:50%;transform:translate(-50%);font-family:var(--gm-font-display);font-size:var(--fs-2xs);font-weight:800;color:var(--n-500);white-space:nowrap}.home-gapbar-fill{position:absolute;left:0;top:0;bottom:0;z-index:2;border-radius:var(--gm-radius-full) 0 0 var(--gm-radius-full);background:color-mix(in srgb,var(--c) 55%,var(--color-surface))}.home-gapbar-climb{position:absolute;top:0;bottom:0;z-index:2;background:repeating-linear-gradient(-45deg,transparent 0 4px,color-mix(in srgb,var(--color-border) 32%,transparent) 4px 7px)}.home-gapbar-you{position:absolute;top:50%;transform:translate(-50%,-50%);z-index:4}.home-gapbar-you-dot{display:block;width:1.05rem;height:1.05rem;border-radius:var(--r-pill);background:var(--c);border:var(--bw-bold) solid var(--color-border);box-shadow:var(--pop-sm)}.home-gapbar-flag{position:absolute;bottom:calc(100% + 1px);transform:translate(-50%);display:flex;flex-direction:column;align-items:center;z-index:5}.home-gapbar-flag-label{font-family:var(--gm-font-display);font-size:var(--fs-2xs);font-weight:800;color:var(--c);background:color-mix(in srgb,var(--c) 16%,var(--color-surface));border:var(--bw) solid var(--c);border-radius:var(--r-sm);padding:0 .35rem;line-height:1.5;transform:rotate(-3deg)}.home-gapbar-flag-pin{width:2.5px;height:.85rem;background:var(--c);border-radius:2px}.home-map-svg{display:block;width:100%;aspect-ratio:680 / 200;margin-top:.75rem}.home-rail-card{flex:0 0 auto;display:flex;flex-direction:column}.home-rail-body{flex:1;display:flex;flex-direction:column;justify-content:center}.home-week{display:flex;align-items:center;gap:.875rem;margin-top:.625rem}.home-week-num{font-family:var(--gm-font-display);font-size:var(--fs-display);font-weight:800;line-height:1;color:var(--color-text)}.home-week-sub{display:flex;flex-direction:column;gap:.1rem;min-width:0}.home-week-lead{font-size:var(--fs-sm);font-weight:800;color:var(--color-text);line-height:1.2}button.home-deadline{justify-content:space-between;text-align:left;cursor:pointer;transition:transform var(--dur-fast) var(--spring),box-shadow var(--dur-fast) var(--ease-out-soft)}button.home-deadline:hover{transform:translate(-1px,-1px);box-shadow:var(--pop)}button.home-deadline:active{transform:translate(1px,1px);box-shadow:var(--pressed)}.home-deadline-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.home-deadline-weight{flex:none;font-size:var(--fs-2xs);font-weight:800;color:var(--color-text);background:var(--color-action-soft);border:var(--bw) solid var(--color-border);border-radius:var(--gm-radius-full);padding:.1rem .5rem;white-space:nowrap}.home-deadline-when{display:flex;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin:.625rem 0}.home-deadline-count{font-size:var(--fs-xl);font-weight:800;color:var(--color-text);line-height:1.05}.home-deadline-due{font-size:var(--fs-sm);font-weight:700;color:var(--n-500)}.home-deadline-work{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-sm)}.home-deadline-name{min-width:0;font-weight:800;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-deadline-code{flex:none;font-size:var(--fs-2xs);font-weight:800;color:var(--n-500)}.home-deadline-open{flex:none;margin-left:auto;color:var(--color-action);font-weight:800;transition:transform var(--dur-fast) var(--spring)}button.home-deadline:hover .home-deadline-open{transform:translate(3px)}.home-nextaction{flex:none;display:flex;align-items:center;gap:.875rem;padding:.875rem 1.125rem;border:var(--bw-bold) solid var(--color-border);border-radius:var(--r-16);border-left-width:7px;border-left-color:var(--accent)}.home-nextaction-ico{width:2.75rem;height:2.75rem;flex:none;display:grid;place-items:center;border-radius:var(--r-12);border:var(--bw) solid var(--color-border);color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--color-surface))}.home-nextaction-text{flex:1;min-width:0}.home-nextaction-eyebrow{display:block;margin-bottom:.15rem}.home-nextaction-title{font-size:var(--fs-md);font-weight:800;color:var(--color-text);line-height:1.2}.home-nextaction>.btn{flex:none}.home-timeline-card,.home-classes-card{display:flex;flex-direction:column;min-height:0}.home-panel-head{flex:none;display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.home-panel-title{margin:0;font-size:var(--fs-lg);font-weight:800;color:var(--color-text)}.home-hero{flex:none}.home-bestmove{flex:none;display:flex;align-items:center;gap:.875rem;padding:1rem 1.25rem;border:var(--bw) solid var(--color-action);background:var(--home-surface)}.home-bestmove-icon{flex:0 0 auto;width:2.25rem;height:2.25rem;border-radius:.625rem;display:flex;align-items:center;justify-content:center}.home-bestmove-body{flex:1 1 auto;min-width:0}.home-bestmove-title{font-weight:700;font-size:var(--fs-md);color:var(--color-text)}.home-bestmove-sub{font-size:var(--fs-sm);color:var(--n-600);margin-top:.125rem}.home-bestmove .btn{flex:0 0 auto}.home-upnext-row{display:flex;align-items:center;gap:.625rem;width:100%;padding:.5rem .25rem;text-align:left;background:none;border:none;cursor:pointer;border-radius:.5rem;transition:background var(--dur-fast) var(--ease-out-soft)}.home-upnext-row:hover{background:var(--n-50)}.home-upnext-time{flex:0 0 auto;width:3rem;font-size:var(--fs-xs);color:var(--n-500);font-variant-numeric:tabular-nums}.home-upnext-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm);font-weight:500;color:var(--n-900)}.home-timeline{flex:1 1 0;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.home-tl{display:flex;align-items:center;gap:.75rem;width:100%;min-height:2.75rem;text-align:left;padding:.5rem;border-bottom:var(--bw) dashed var(--n-150);transition:background var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--spring)}.home-tl:last-child{border-bottom:0}.home-tl:hover{background:var(--n-100)}.home-tl:active{transform:scale(.99)}.home-tl.is-past{opacity:.55}.home-tl.is-now{background:var(--color-action-soft);box-shadow:inset 3px 0 0 var(--color-action)}.home-tl-time{width:3.25rem;flex:none;font-size:var(--fs-sm);font-weight:800;color:var(--color-text)}.home-tl-tag{width:.6rem;height:.6rem;flex:none;border-radius:var(--r-pill);border:var(--bw-hair) solid var(--color-border)}.home-tl-body{flex:1;min-width:0;display:flex;flex-direction:column}.home-tl-title{font-size:var(--fs-sm);font-weight:800;color:var(--color-text)}.home-tl--gap{border-bottom:0}.home-tl-break{display:flex;align-items:center;gap:.6rem;padding:.15rem .25rem}.home-tl-break:before,.home-tl-break:after{content:"";flex:1;border-top:var(--bw) dashed var(--n-150)}.home-tl-break-label{flex:none;font-size:var(--fs-2xs);font-weight:700;color:var(--n-500);white-space:nowrap}.home-timeline-empty{flex:1 1 0;min-height:0;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem 0;text-align:center}.home-timeline-empty-title{margin-bottom:.125rem;font-size:var(--fs-md);color:var(--color-text)}.home-classlist{flex:1 1 0;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.125rem}.home-classrow{display:flex;align-items:center;gap:.625rem;width:100%;min-height:2.75rem;text-align:left;padding:.5rem .5rem .5rem .75rem;border-radius:var(--r-md);box-shadow:inset 4px 0 0 var(--class-accent);transition:background var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--spring)}.home-classrow:hover{background:color-mix(in srgb,var(--class-accent) 10%,var(--n-100))}.home-classrow:active{transform:scale(.97)}.home-classrow-code{width:3.5rem;flex:none;font-size:var(--fs-2xs);font-weight:800;color:var(--n-500)}.home-classrow-name{flex:1;min-width:0;font-size:var(--fs-sm);font-weight:700;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-classrow-grade{flex:none;font-size:var(--fs-sm);font-weight:800;color:var(--color-text)}.home-classrow-status{width:.6rem;height:.6rem;flex:none;border-radius:var(--r-pill);border:var(--bw-hair) solid var(--color-border)}.home-classes-empty{padding:1rem 0}@media(max-width:960px){.home-page{flex:0 0 auto;min-height:100%}.home-row1,.home-row3,.home-actions-row{grid-template-columns:1fr;grid-template-rows:auto}.home-row1,.home-row3{flex:none}.home-timeline,.home-classlist{flex:none;overflow:visible}.home-map-svg{height:9rem}}.cmap-grid{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;min-width:0}.cmap-grid>*{min-width:0;min-height:0}.cmap-canvas{padding:0;position:relative;background-color:var(--cmap-bg);background-image:radial-gradient(circle,color-mix(in srgb,var(--cmap-mid) 26%,transparent) 1px,transparent 1px);background-size:22px 22px;background-repeat:repeat;background-position:0 0;border-color:var(--color-border);box-shadow:var(--pop);transition:box-shadow var(--dur-base) var(--ease-out-soft),background-image var(--dur-base) var(--ease-out-soft);display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;user-select:none;-webkit-user-select:none}[data-theme=dark] .cmap-canvas{background-image:radial-gradient(circle,color-mix(in srgb,var(--cmap-mid) 20%,transparent) 1px,transparent 1px)}.cmap-canvas .cmap-edit,.cmap-canvas .cmap-edit *{user-select:text;-webkit-user-select:text}.cmap-canvas.is-empty{border:var(--bw) dashed var(--color-border);box-shadow:var(--pop-sm);background-color:var(--n-0);background-image:radial-gradient(ellipse 70% 50% at 50% 35%,color-mix(in srgb,var(--cmap-bg) 65%,transparent) 0%,transparent 70%)}.cmap-empty{position:relative;flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;padding:1.5rem}.cmap-empty-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;max-width:22.5rem}.cmap-empty-icon{width:3.5rem;height:3.5rem;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--cmap-bg) 80%,var(--n-0));color:var(--cmap-mid);margin-bottom:.25rem}.cmap-empty-title{font-size:var(--fs-lg);font-weight:700;color:var(--n-900);margin:0;letter-spacing:-.01em}.cmap-empty-body{font-size:var(--fs-xs);color:var(--n-600);margin:0;line-height:1.5}.ccb{display:inline-flex;align-items:center;gap:.125rem;padding:.25rem;background:var(--color-surface);border-radius:var(--r-pill);border:var(--bw) solid var(--color-border);box-shadow:var(--pop-sm)}.ccb-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .6875rem;border-radius:var(--r-pill);font-size:var(--fs-2xs);font-weight:600;letter-spacing:.04em;color:var(--n-600);background:transparent;border:1px solid transparent;transition:background var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft),border-color var(--dur-fast) var(--ease-out-soft)}.ccb-chip:hover{color:var(--n-900);background:var(--n-100)}.ccb-chip.is-active{color:var(--n-900)}.ccb-chip-code{letter-spacing:.06em}.ccb-chip-lead{margin-right:.25rem;padding-right:.8125rem;border-right:1px solid var(--n-200);border-radius:var(--r-pill)}.ccb-chip-lead.is-active{background:var(--gm-periwinkle-50, color-mix(in srgb, var(--gm-periwinkle-400) 14%, var(--n-0)));color:var(--color-action-hover, var(--color-action));border-color:color-mix(in srgb,var(--gm-periwinkle-400) 40%,transparent)}.ccb-chip-lead svg{color:currentColor}.cmap-class-bar{position:absolute;top:1rem;right:1rem;z-index:2}.cmap-readout{position:absolute;top:1.125rem;left:1.125rem;z-index:5;padding:.875rem 1rem;border-radius:var(--r-lg);background:var(--color-surface);border:var(--bw) solid var(--color-border);box-shadow:var(--pop-sm);min-width:11rem;max-width:15rem}.cmap-readout-row{display:flex;align-items:flex-end;gap:1rem}.cmap-readout-div{width:1px;align-self:stretch;background:var(--n-150);margin:.1875rem 0}.cmap-readout-foot{margin-top:.625rem;padding-top:.5625rem;border-top:1px solid var(--n-100)}.cmap-need{margin-top:.5rem}.cmap-big{font-family:var(--gm-font-display);font-size:var(--fs-2xl);font-weight:800;color:var(--n-900);letter-spacing:-.02em;line-height:1;margin-top:.375rem;font-variant-numeric:tabular-nums}.cmap-mid{font-family:var(--gm-font-display);font-size:var(--fs-lg);font-weight:700;color:var(--n-900);letter-spacing:-.02em;line-height:1;margin-top:.25rem;font-variant-numeric:tabular-nums}.cmap-pct{font-size:var(--fs-xs);color:var(--n-400);font-weight:500}.cmap-trajectory{margin-top:.625rem}.cmap-sketch-row{margin-top:.875rem;padding-top:.75rem;border-top:1px dashed var(--n-200);display:flex;align-items:center;justify-content:space-between}.cmap-sketch-pill{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:var(--r-pill);background:color-mix(in srgb,var(--cmap-mid) 14%,var(--n-0));color:var(--cmap-mid);font-size:var(--fs-2xs);font-weight:600;letter-spacing:.04em}.cmap-sketch-reset{font-size:var(--fs-2xs);font-weight:600;color:var(--n-500);padding:.25rem .625rem;border-radius:var(--r-pill);border:1px solid var(--n-200);background:var(--n-0);transition:color var(--dur-fast) var(--ease-out-soft),border-color var(--dur-fast) var(--ease-out-soft),background var(--dur-fast) var(--ease-out-soft)}.cmap-sketch-reset:hover{color:var(--n-900);border-color:var(--n-300);background:var(--n-100)}.refl-page{display:flex;flex-direction:column;gap:1.625rem}.refl-hero{display:flex;align-items:center;flex-wrap:wrap;gap:1.25rem;padding:1.25rem 1.5rem}.refl-hero-text{flex:1;min-width:12rem}.refl-hero-verdict{margin:.15rem 0 0;font-size:var(--fs-2xl);font-weight:800;color:var(--color-text);line-height:1.1}.refl-hero-sub{margin:.25rem 0 0;font-size:var(--fs-sm);color:var(--n-500)}.refl-hero-stat{flex:none;text-align:right}.refl-hero-stat-num{font-size:var(--fs-3xl);font-weight:800;color:var(--color-text);line-height:1}.refl-section{display:flex;flex-direction:column;gap:.875rem}.refl-section-head{display:flex;align-items:baseline;gap:.875rem;flex-wrap:wrap}.refl-section-label{margin:0;font-family:var(--gm-font-body);font-size:var(--fs-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--n-500)}.refl-section-insight{margin:0;font-size:var(--fs-sm);color:var(--n-600)}.refl-types{display:flex;flex-direction:column;gap:.75rem;padding:1.125rem 1.25rem}.refl-type-row{display:grid;grid-template-columns:9.375rem 1fr 3.25rem 2.875rem;gap:.875rem;align-items:center}.refl-type-label{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-sm);font-weight:600;color:var(--n-800)}.refl-type-count{font-size:var(--fs-2xs);color:var(--n-500);background:var(--n-100);border-radius:var(--r-pill);padding:.0625rem .4375rem;font-weight:600}.refl-type-bar{height:.5rem;background:var(--n-150);border-radius:var(--r-pill);overflow:hidden}.refl-type-fill{height:100%;border-radius:var(--r-pill);transition:width var(--dur-base) var(--ease-out-soft)}.refl-type-fill.tone-sage{background:var(--sage-500)}.refl-type-fill.tone-rose{background:var(--rose-500)}.refl-type-fill.tone-neutral{background:var(--n-400)}.refl-type-avg{font-size:var(--fs-md);font-weight:700;color:var(--n-900);text-align:right}.refl-type-avg span{font-size:var(--fs-xs);color:var(--n-400)}.refl-type-delta{font-size:var(--fs-xs);font-weight:600;text-align:right}.refl-type-delta.tone-sage{color:var(--sage-500)}.refl-type-delta.tone-rose{color:var(--rose-500)}.refl-type-delta.tone-neutral{color:var(--n-400)}.refl-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(13.125rem,1fr));gap:.875rem}.refl-tile{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.125rem;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--r-16);box-shadow:var(--pop-sm);border-top-width:4px;border-top-color:var(--n-300)}.refl-tile.tone-sage{border-top-color:var(--sage-400)}.refl-tile.tone-rose{border-top-color:var(--rose-400)}.refl-tile-head{display:flex;align-items:center;gap:.4375rem;font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--n-500)}.refl-tile.tone-sage .refl-tile-head{color:var(--sage-600, var(--sage-500))}.refl-tile.tone-rose .refl-tile-head{color:var(--rose-500)}.refl-tile-name{font-size:var(--fs-sm);font-weight:600;color:var(--n-900)}.refl-tile-foot{display:flex;align-items:baseline;justify-content:space-between;gap:.625rem}.refl-tile-grade{font-size:var(--fs-2xl);font-weight:800;color:var(--n-900);line-height:1}.refl-tile-class{display:inline-flex;align-items:center;gap:.3125rem;font-size:var(--fs-2xs);color:var(--n-500);font-weight:600}.refl-tile-detail{font-size:var(--fs-2xs);color:var(--n-400)}.refl-record{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;align-items:center;padding:1.25rem 1.375rem}.refl-record-rate{display:flex;flex-direction:column;gap:.5rem}.refl-record-num{font-size:var(--fs-3xl);font-weight:800;color:var(--n-900);line-height:1;letter-spacing:-.02em}.vs-target{display:inline-flex;align-items:center;gap:.2rem;font-size:var(--fs-2xs);font-weight:800;white-space:nowrap}.vs-target-up{color:var(--sage-600, var(--sage-500))}.vs-target-down{color:var(--rose-500)}.refl-record-den{font-size:var(--fs-lg);color:var(--n-400);margin-left:.25rem}.refl-record-cap{font-size:var(--fs-xs);color:var(--n-600)}.refl-record-dots{display:flex;flex-wrap:wrap;gap:.3125rem;margin-top:.125rem;max-width:11.25rem}.refl-record-dot{width:.625rem;height:.625rem;border-radius:50%;background:var(--n-200)}.refl-record-dot.is-hit{background:var(--sage-500)}.refl-missed{display:flex;flex-direction:column;gap:.5rem}.refl-missed-label{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--rose-500)}.refl-missed-list{display:flex;flex-wrap:wrap;gap:.5rem}.refl-missed-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background:var(--rose-50);border-radius:.5rem;font-size:var(--fs-2xs);color:var(--n-700)}.refl-missed-chip b{color:var(--n-900)}.refl-missed-target{color:var(--n-400)}.cls-card-menu{opacity:.55;transition:opacity var(--dur-fast) var(--ease-out-soft),background var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-out-soft)}.cls-card:hover .cls-card-menu{opacity:1}.cls-card-menu:hover{background:var(--n-100);color:var(--n-700)!important}.cls-card-menu:active{transform:scale(.92)}@media(hover:none){.cls-card-menu{opacity:1}}.context-menu{min-width:11.75rem;max-width:16.25rem;padding:.375rem;background:var(--n-0);border:1px solid var(--n-150);border-radius:.75rem;box-shadow:var(--sh-lg);z-index:1000;display:flex;flex-direction:column;gap:.125rem}.context-menu-item{display:flex;align-items:center;gap:.625rem;width:100%;padding:.5rem .625rem;border:none;background:transparent;border-radius:.5rem;color:var(--n-800);font-size:var(--fs-sm);font-weight:500;text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out-soft)}.context-menu-item.is-focused,.context-menu-item:hover{background:var(--n-100)}.context-menu-item:disabled{opacity:.4;cursor:default;background:transparent}.context-menu-item.is-destructive{color:var(--rose-500)}.context-menu-item.is-destructive.is-focused,.context-menu-item.is-destructive:hover{background:color-mix(in srgb,var(--rose-500) 10%,transparent)}.context-menu-item-icon{display:flex;align-items:center;justify-content:center;width:1.125rem;flex:0 0 1.125rem;color:var(--n-500)}.context-menu-item.is-destructive .context-menu-item-icon{color:var(--rose-500)}.context-menu-item-label{flex:1}.context-menu-item-hint{color:var(--n-400);font-size:var(--fs-xs)}.context-menu-sep{height:1px;background:var(--n-150);margin:.25rem .375rem}.view-fade-in,.cal-view-in{animation:view-fade-in var(--dur-base) var(--ease-out-soft) both}@keyframes view-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.stagger-in{animation:view-fade-in var(--dur-base) var(--ease-out-soft) both;animation-delay:calc(min(var(--i, 0),8)*45ms)}.gm-tooltip{pointer-events:none;z-index:1100;max-width:17.5rem;padding:.375rem .625rem;background:var(--n-800);color:var(--n-50);font-size:var(--fs-2xs);font-weight:500;line-height:1.45;letter-spacing:.01em;border-radius:var(--r-sm);box-shadow:var(--sh-md);animation:gm-tooltip-in var(--dur-fast) var(--ease-out-soft) both}.gm-tooltip.is-closing{opacity:0;transition:opacity var(--dur-fast) var(--ease-out-soft);animation:none}@keyframes gm-tooltip-in{0%{opacity:0;transform:var(--tip-from, translateY(4px))}to{opacity:1;transform:translate(0)}}.gm-tooltip.side-top{--tip-from: translateY(4px)}.gm-tooltip.side-bottom{--tip-from: translateY(-4px)}.gm-tooltip.side-left{--tip-from: translateX(4px)}.gm-tooltip.side-right{--tip-from: translateX(-4px)}.gm-tooltip kbd{font-family:var(--gm-font-body);font-size:var(--fs-2xs);background:color-mix(in srgb,var(--n-50) 16%,transparent);border-radius:.25rem;padding:.0625rem .3125rem;margin-left:.375rem}.gm-tour{position:fixed;inset:0;z-index:1200}.gm-tour-mask{position:absolute;inset:0;background:transparent;animation:gm-tour-fade var(--dur-base) var(--ease-out-soft) both}.gm-tour-mask.is-centered{background:var(--gm-bg-overlay)}.gm-tour-spotlight{position:absolute;border-radius:var(--r-lg);box-shadow:0 0 0 9999px var(--gm-bg-overlay),0 0 0 2.5px var(--color-action);transition:left var(--dur-base) var(--ease-out-soft),top var(--dur-base) var(--ease-out-soft),width var(--dur-base) var(--ease-out-soft),height var(--dur-base) var(--ease-out-soft)}.gm-tour-pop{position:absolute;width:min(22rem,calc(100vw - 2 * var(--fs-md)));background:var(--n-0);border:1px solid var(--n-150);border-radius:var(--r-xl);box-shadow:var(--sh-lg),var(--hl);padding:1.125rem 1.25rem 1rem;animation:gm-tour-pop-in var(--dur-base) var(--ease-out-snap) both}@keyframes gm-tour-fade{0%{opacity:0}to{opacity:1}}@keyframes gm-tour-pop-in{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.gm-tour-close{position:absolute;top:.625rem;right:.625rem;display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:var(--r-sm);color:var(--n-400);background:transparent;transition:color var(--dur-fast) var(--ease-out-soft),background var(--dur-fast) var(--ease-out-soft)}.gm-tour-close:hover{color:var(--n-700);background:var(--n-100)}.gm-tour-step{font-size:var(--fs-2xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-action)}.gm-tour-title{margin:.25rem 0 0;font-size:var(--fs-xl);font-weight:500;line-height:1.2;letter-spacing:-.01em;color:var(--n-900);padding-right:1.5rem}.gm-tour-body{margin:.5rem 0 0;font-size:var(--fs-sm);line-height:1.55;color:var(--n-600)}.gm-tour-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1.125rem}.gm-tour-dots{display:flex;align-items:center;gap:.3125rem}.gm-tour-dot{width:.4375rem;height:.4375rem;border-radius:50%;background:var(--n-200);transition:background var(--dur-base) var(--ease-out-soft),width var(--dur-base) var(--ease-out-soft)}.gm-tour-dot.is-active{width:1.125rem;border-radius:.25rem;background:var(--color-action)}.gm-tour-actions{display:flex;align-items:center;gap:.5rem}.gm-tour-skip{padding:.375rem .5rem;font-size:var(--fs-sm);font-weight:500;color:var(--n-500);background:transparent;border-radius:var(--r-sm);transition:color var(--dur-fast) var(--ease-out-soft)}.gm-tour-skip:hover{color:var(--n-700)}.gm-tour-skip-all{display:block;margin-top:.625rem;padding:0;font-size:var(--fs-xs);color:var(--n-400);background:transparent;transition:color var(--dur-fast) var(--ease-out-soft)}.gm-tour-skip-all:hover{color:var(--n-600);text-decoration:underline}.cls-card{cursor:pointer;transition:box-shadow .15s var(--ease-out-soft),transform .22s var(--ease-out-soft),border-color .15s var(--ease-out-soft),opacity .15s var(--ease-out-soft)}.cls-card:hover{box-shadow:var(--pop);transform:translate(-1px,-1px);border-color:var(--cls-card-edge)}.cls-card.is-dimmed{opacity:.55}.cls-card.is-drop-target{border-color:var(--cls-card-edge)}.cls-card.is-dragging{z-index:20;cursor:grabbing;box-shadow:var(--sh-lg),0 24px 50px -18px #281e1459;transition:none}.cls-card.is-dragging:hover{transform:none}.cls-placeholder{border:1px dashed var(--n-300);border-radius:var(--r-lg);background:color-mix(in srgb,var(--n-100) 50%,transparent);transform-origin:center;animation:cls-placeholder-in .22s var(--ease-out-soft) both;transition:left .22s var(--ease-out-soft),top .22s var(--ease-out-soft)}@keyframes cls-placeholder-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.cls-grid.is-dragging .cls-card:hover{transform:none;box-shadow:var(--sh-sm)}.cls-add{padding:1.25rem;cursor:pointer;text-align:left;background:var(--n-50);border-style:dashed;display:flex;align-items:center;justify-content:center;gap:.625rem;min-height:4rem;color:var(--n-500);font-weight:500;transition:background-color .15s var(--ease-out-soft),color .15s var(--ease-out-soft)}.cls-add:hover{background:var(--n-100);color:var(--n-800)}.work-boxes{display:flex;flex-wrap:wrap;gap:.25rem}.work-box{width:1.125rem;height:1.125rem;border-radius:.25rem;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-2xs);font-weight:600;line-height:1;border:1px solid;transition:transform var(--dur-fast) var(--ease-out-soft),box-shadow var(--dur-fast) var(--ease-out-soft)}.work-box:hover{transform:translateY(-1px);box-shadow:var(--sh-sm)}.work-box-in_progress{background:var(--amber-50);color:var(--amber-500);border-color:color-mix(in srgb,var(--amber-500) 25%,transparent)}.work-box-overdue{background:var(--rose-50);color:var(--rose-500);border-color:color-mix(in srgb,var(--rose-500) 30%,transparent)}.work-box-not_started{background:transparent;color:var(--n-400);border-color:var(--n-200);border-style:dashed}.work-box-ellipsis{letter-spacing:.5px;margin-top:-.25rem}.work-box-dash{font-size:var(--fs-2xs);line-height:0}.wi-page{width:100%;max-width:64rem;margin:1.5rem auto 0;display:flex;flex-direction:column;gap:.875rem}.wi-picker-row{display:flex;justify-content:center}.wi-card{height:34rem;max-height:calc(100vh - 10rem);border-radius:var(--r-lg);border:var(--bw) solid var(--color-border);background:var(--color-surface);box-shadow:var(--pop);overflow:hidden;animation:wi-card-in var(--dur-base) var(--ease-out-soft) both}@keyframes wi-card-in{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.wi-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);height:100%}.wi-left{display:flex;flex-direction:column;min-height:0;padding:1.625rem 0 1.5rem;border-right:var(--bw) solid var(--color-border)}.wi-right{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:0;overflow-y:auto;padding:1.625rem 1.75rem}.wi-panel-title{font-family:var(--gm-font-display);font-weight:700;font-size:var(--fs-xl);color:var(--color-text);text-align:center;margin:0}.wi-left .wi-panel-title{padding:0 1.75rem;margin-bottom:1rem}.wi-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 1.75rem;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);scrollbar-width:thin;scrollbar-color:var(--n-300) transparent;scroll-behavior:smooth;overscroll-behavior:contain}.wi-scroll::-webkit-scrollbar{width:8px}.wi-scroll::-webkit-scrollbar-thumb{background:var(--n-200);border-radius:var(--r-pill);border:2px solid transparent;background-clip:padding-box}.wi-scroll::-webkit-scrollbar-thumb:hover{background:var(--n-300);background-clip:padding-box}.wi-right>*{animation:wi-rise var(--dur-base) var(--ease-out-soft) both}.wi-right>*:nth-child(1){animation-delay:.11s}.wi-right>*:nth-child(2){animation-delay:165ms}.wi-right>*:nth-child(3){animation-delay:.22s}.wi-right>*:nth-child(4){animation-delay:275ms}@keyframes wi-rise{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}.wi-vs-pop{animation:wi-pop var(--dur-base) var(--spring) both}@keyframes wi-pop{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.wi-card,.wi-right>*,.wi-vs-pop{animation:none}.wi-scroll{scroll-behavior:auto}}.wi-row{padding:1.125rem 0;animation:wi-row-in var(--dur-base) var(--ease-out-soft) both}.wi-row+.wi-row{border-top:1px solid var(--n-100)}.wi-rows>.wi-row:nth-child(1){animation-delay:0ms}.wi-rows>.wi-row:nth-child(2){animation-delay:45ms}.wi-rows>.wi-row:nth-child(3){animation-delay:90ms}.wi-rows>.wi-row:nth-child(4){animation-delay:135ms}.wi-rows>.wi-row:nth-child(n+5){animation-delay:.18s}@keyframes wi-row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.wi-row{animation:none}}.wi-row-head{display:flex;align-items:center;gap:.875rem;margin-bottom:.875rem}.wi-num{flex:none;width:3.75rem;text-align:center;padding:.4375rem .25rem;border:var(--bw-bold) solid var(--color-border);border-radius:var(--r-12);background:var(--color-bg);font-family:var(--gm-font-display);font-weight:700;font-size:var(--fs-lg);color:var(--color-text);font-variant-numeric:tabular-nums;outline:none;transition:border-color var(--dur-fast) var(--ease-out-soft),box-shadow var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--spring)}.wi-row:hover .wi-num{transform:translateY(-2px);box-shadow:var(--pop-sm)}.wi-num:focus{border-color:var(--color-action);box-shadow:var(--pop-sm);transform:translateY(-2px)}.wi-num::-webkit-outer-spin-button,.wi-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.wi-num[type=number]{-moz-appearance:textfield;appearance:textfield}.wi-row-label{font-size:var(--fs-md);font-weight:600;color:var(--color-text)}.wi-row-sub{margin-top:.125rem}.wi-need{display:flex;justify-content:center;margin-top:1.25rem;padding:0 1.75rem}.wi-need-box{max-width:100%;text-align:center;padding:.5625rem 1rem;border:var(--bw) solid;border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:600;transition:background var(--dur-base) var(--ease-out-soft),border-color var(--dur-base) var(--ease-out-soft),color var(--dur-base) var(--ease-out-soft)}.wi-need-box b{font-weight:800;font-variant-numeric:tabular-nums}.wi-need-box.is-pill-wide{border-radius:var(--r-lg);padding:.6875rem 1rem;line-height:1.45}.wi-need-sage{background:var(--sage-50);border-color:color-mix(in srgb,var(--sage-500) 30%,transparent);color:var(--sage-600, var(--sage-500))}.wi-need-amber{background:var(--amber-50);border-color:color-mix(in srgb,var(--amber-500) 30%,transparent);color:var(--amber-600, var(--amber-500))}.wi-need-rose{background:var(--rose-50);border-color:color-mix(in srgb,var(--rose-500) 30%,transparent);color:var(--rose-500)}.wi-result{display:flex;flex-direction:column;align-items:center;gap:.5rem}.wi-result-num{font-family:var(--gm-font-display);font-size:var(--fs-display);line-height:1;font-weight:800;color:var(--color-text);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.wi-result-num span{font-size:var(--fs-xl);color:var(--n-400)}.wi-result-vs.vs-target{font-size:var(--fs-sm)}.wi-right .wi-panel-title{margin-bottom:1.25rem}.wi-actions{display:flex;justify-content:center;align-items:center;min-height:3.1rem;margin-top:1.5rem}.wi-save-form{display:flex;gap:.5rem;width:100%;max-width:26rem}.wi-save-form .form-input{min-width:0}.wi-scenarios{width:100%;margin-top:1.625rem;padding-top:1.375rem;border-top:1px solid var(--n-100)}.wi-scenarios-label{text-align:center;margin-bottom:.75rem}.wi-chip-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.625rem}.wi-chip-wrap{position:relative;display:inline-flex}.wi-chip{padding:.4375rem .875rem;border:var(--bw) solid var(--color-border);border-radius:var(--r-pill);background:var(--color-bg);font-size:var(--fs-xs);font-weight:700;color:var(--color-text);box-shadow:var(--pop-sm);transition:transform var(--dur-fast) var(--spring),box-shadow var(--dur-fast) var(--ease-out-soft),background var(--dur-fast) var(--ease-out-soft)}.wi-chip:hover{transform:translate(-1px,-1px);background:var(--gm-periwinkle-50);box-shadow:var(--pop)}.wi-chip:active{transform:scale(.97);box-shadow:var(--pressed, var(--pop-sm))}.wi-chip.is-active{background:var(--color-action);border-color:var(--color-action);color:var(--n-0)}.wi-chip.is-active:hover{background:var(--color-action-hover);border-color:var(--color-action-hover)}.wi-chip-dot{display:inline-block;width:.4rem;height:.4rem;margin-right:.4rem;border-radius:var(--r-pill);background:currentColor;vertical-align:middle}.wi-right .wi-save-error{margin-top:.5rem;text-align:center;font-size:var(--fs-xs);font-weight:600;color:var(--rose-500);animation:wi-rise var(--dur-fast) var(--ease-out-soft) 0ms both}.wi-chip-x{position:absolute;top:-.4375rem;right:-.4375rem;width:1.25rem;height:1.25rem;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-pill);border:var(--bw-hair) solid var(--color-border);background:var(--color-surface);color:var(--n-600);opacity:0;transform:scale(.8);transition:opacity var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--spring),color var(--dur-fast) var(--ease-out-soft)}.wi-chip-wrap:hover .wi-chip-x,.wi-chip-x:focus-visible{opacity:1;transform:scale(1)}.wi-chip-x:hover{color:var(--rose-500);border-color:color-mix(in srgb,var(--rose-500) 45%,var(--color-border))}@media(max-width:760px){.wi-card{height:auto;max-height:none}.wi-split{grid-template-columns:1fr}.wi-left{border-right:none;border-bottom:var(--bw) solid var(--color-border);padding-bottom:1.25rem}.wi-scroll{max-height:21rem}.wi-right{padding-top:1.5rem}}@media(max-width:720px){.wi-page{margin-top:1rem}.wi-result-num{font-size:var(--fs-2xl)}}.cal-shell{display:flex;align-items:stretch;position:relative;flex:1 1 auto;min-height:0}.cal-main{flex:1;min-width:0;min-height:0;padding:0;overflow-y:auto;scrollbar-gutter:stable}.cal-range{font-size:var(--fs-sm);font-weight:500;color:var(--n-700)}.cal-nav{display:flex;align-items:center;background:var(--n-0);border:1px solid var(--n-150);border-radius:var(--r-pill);padding:.25rem}.cal-nav-today{padding:.375rem 1rem;font-size:var(--fs-xs);font-weight:500;color:var(--n-800);border-radius:var(--r-pill);background:var(--n-100);transition:background var(--dur-fast) var(--ease-out-soft)}.cal-nav-today:hover{background:var(--n-150)}.cal-view-toggle{display:flex;background:var(--n-0);border:1px solid var(--n-150);border-radius:var(--r-pill);padding:.25rem;gap:.125rem}.cal-view-toggle button{padding:.375rem .875rem;font-size:var(--fs-xs);font-weight:500;color:var(--n-600);border-radius:var(--r-pill);transition:background var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft)}.cal-view-toggle button:hover{color:var(--n-800)}.cal-view-toggle button.is-active{color:var(--color-on-action);background:var(--color-action)}.cal-event{position:absolute;left:.25rem;right:.25rem;height:var(--ev-h);background:var(--ev-bg);color:var(--ev-text);border:var(--bw) solid var(--color-border);border-radius:var(--r-8);padding:.5rem .625rem;font-size:var(--fs-xs);text-align:left;overflow:hidden;cursor:pointer;z-index:1;interpolate-size:allow-keywords;transition:transform var(--dur-fast) var(--ease-out-soft),top var(--dur-fast) var(--ease-out-soft),box-shadow var(--dur-fast) var(--ease-out-soft),background var(--dur-fast) var(--ease-out-soft),width var(--dur-base) var(--ease-out-soft),right var(--dur-base) var(--ease-out-soft),height var(--dur-base) var(--ease-out-soft)}.cal-event:hover,.cal-event.is-selected{z-index:5;transform:translate(-1px,-1px);box-shadow:var(--pop-sm)}.cal-event:focus-visible{outline:var(--focus-outline);outline-offset:2px;z-index:11}.cal-event.is-selected{z-index:10;outline:2px solid color-mix(in srgb,var(--ev-mid) 60%,transparent);outline-offset:-1px}.cal-event.has-overflow:hover,.cal-event.has-overflow.is-selected{right:auto;width:max-content;min-width:calc(100% - 8px);max-width:20rem;height:auto;min-height:var(--ev-h);overflow:visible}.cal-event-title{font-weight:600;color:var(--n-900);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:.25rem}.cal-event.is-attended .cal-event-title{color:color-mix(in srgb,var(--n-900) 78%,var(--ev-mid))}.cal-event.is-attended .cal-event-title svg{color:var(--ev-text);flex-shrink:0}.cal-event.is-dragging{z-index:30;cursor:grabbing;overflow:visible;box-shadow:6px 6px 0 var(--color-shadow);transition:none}.cal-event{cursor:grab}.cal-day-col.is-drop-target{background:color-mix(in srgb,var(--gm-periwinkle-50) 50%,transparent)!important;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--gm-periwinkle-400) 32%,transparent)}.cal-event-ghost{position:absolute;left:.25rem;right:.25rem;border-radius:.5rem;border:var(--bw-hair) dashed color-mix(in srgb,var(--color-action) 55%,transparent);background:color-mix(in srgb,var(--gm-periwinkle-50) 55%,transparent);pointer-events:none;z-index:2}.cal-event-dragtime{position:absolute;top:-.6875rem;right:.375rem;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.02em;color:var(--n-0);background:var(--color-action);padding:.125rem .5rem;border-radius:var(--r-pill);box-shadow:var(--sh-sm);white-space:nowrap;pointer-events:none;z-index:1}.cal-week-grid.is-dragging .cal-hour-cell{border-top-color:var(--n-200)}.cal-pending{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.875rem 0 .25rem;padding:.625rem .875rem .625rem 1rem;border-radius:.75rem;background:color-mix(in srgb,var(--gm-periwinkle-50) 70%,var(--n-0));border:1px solid color-mix(in srgb,var(--gm-periwinkle-400) 30%,var(--n-150));box-shadow:var(--sh-sm);animation:cal-pending-in var(--dur-base) var(--ease-out-soft) both}.cal-pending.is-leaving{animation:cal-pending-out var(--dur-base) var(--ease-out-soft) both;pointer-events:none}@keyframes cal-pending-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cal-pending-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(8px) scale(.98)}}.cal-pending-count{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-sm);font-weight:600;color:var(--color-action-hover, var(--color-action))}.cal-pending-actions{display:flex;gap:.5rem}.cal-pending-actions .btn{padding:.4375rem .875rem}.cal-event-sub,.cal-event-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-sub{margin-top:.1875rem;font-size:var(--fs-2xs);opacity:.85}.cal-event-meta{margin-top:.25rem;font-size:var(--fs-2xs);opacity:.7}.cal-now-line{position:absolute;left:0;right:0;height:2px;background:var(--color-action);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-action) 20%,transparent);z-index:2;pointer-events:none}.cal-now-line-dot{position:absolute;left:-.3125rem;top:-.25rem;width:.625rem;height:.625rem;border-radius:var(--r-pill);background:var(--color-action)}.cal-panel{position:absolute;top:0;right:0;bottom:0;width:21.25rem;padding-left:1rem;overflow-y:auto;opacity:0;transform:translate(12px);pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-out-soft)}.cal-panel.is-open{opacity:1;transform:translate(0);pointer-events:auto;transition:opacity var(--dur-base) var(--ease-out-soft),transform var(--dur-base) cubic-bezier(.32,.72,0,1)}.cal-panel-inner{width:100%}.cal-detail{background:var(--ev-bg);border:var(--bw) solid var(--color-border);border-left:var(--bw-heavy) solid var(--ev-mid);border-radius:var(--r-lg);box-shadow:var(--pop);padding:1.125rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:1rem}.cal-detail-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.cal-detail-head .badge{display:inline-block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-detail-head .icon-btn{flex-shrink:0}.cal-detail-body{display:flex;flex-direction:column;gap:.375rem}.cal-detail-title{font-size:var(--fs-lg);font-weight:500;color:var(--n-900);letter-spacing:-.01em;margin:0;line-height:1.2}.cal-detail-code{font-size:var(--fs-2xs);color:var(--ev-text);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.cal-detail-meta-row{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-xs);color:var(--n-700);margin-top:.375rem}.cal-detail-meta-row .ico,.cal-detail-meta-row svg{color:var(--n-500);flex-shrink:0}.cal-detail-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem}.cal-detail-actions .btn{justify-content:center}.cal-month{display:flex;flex-direction:column}.cal-month-header{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--n-150)}.cal-month-header>div{padding:.75rem 0;text-align:center;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.14em;color:var(--n-400);border-left:1px solid var(--n-100)}.cal-month-header>div:first-child{border-left:none}.cal-month-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(6rem,1fr)}.cal-month-cell{border-left:1px solid var(--n-100);border-top:1px solid var(--n-100);padding:.5rem .625rem;text-align:left;background:transparent;cursor:pointer;position:relative;min-height:6rem;transition:background var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-out-soft)}.cal-month-cell:first-child,.cal-month-cell:nth-child(7n+1){border-left:1px solid var(--n-100)}.cal-month-cell:hover{background:color-mix(in srgb,var(--gm-periwinkle-50) 60%,transparent)}.cal-month-cell:active{transform:scale(.98)}.cal-month-cell.is-other-month{background:var(--n-50)}.cal-month-cell.is-other-month .cal-month-cell-day{color:var(--n-300)}.cal-month-cell.is-today{background:color-mix(in srgb,var(--gm-periwinkle-50) 60%,transparent)}.cal-month-cell.is-today .cal-month-cell-day{color:var(--color-action-hover)}.cal-month-cell-day{font-family:var(--gm-font-display);font-size:var(--fs-base);font-weight:500;color:var(--n-800);letter-spacing:-.01em}.cal-month-cell-dots{display:flex;gap:.25rem;align-items:center;margin-top:.5rem}.cal-month-cell-overflow{font-size:var(--fs-2xs);font-weight:600;color:var(--n-500)}.page-in{animation:page-in var(--dur-base) var(--ease-out-soft) both;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}:where(.page-in)>*{flex-shrink:0}.route-fallback{display:flex;flex-direction:column;gap:1rem;padding:.25rem}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.settings-tabs{display:flex;justify-content:center;gap:.25rem;padding:.25rem;margin:0 auto 1rem;background:var(--n-100);border:var(--bw) solid var(--color-border);border-radius:var(--r-pill);width:max-content;max-width:100%}.settings-tab{padding:.5rem 1.125rem;font-size:var(--fs-xs);font-weight:500;color:var(--n-600);border-radius:var(--r-pill);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out-soft),background var(--dur-fast) var(--ease-out-soft)}.settings-tab:hover{color:var(--n-900)}.settings-tab.is-active{background:var(--n-0);color:var(--color-action);box-shadow:var(--pop-sm)}.settings-content{width:100%;max-width:46rem;margin:0 auto;display:flex;flex-direction:column}.settings-section-body{padding:1.5rem 1.75rem}@keyframes featured-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.cmap-trail-line{stroke-dasharray:1;animation:cmap-trail-draw .72s var(--ease-out-soft) both}@keyframes cmap-trail-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}.cmap-fork-fade{animation:cmap-fade-in .36s var(--ease-out-soft) both;animation-delay:.52s}.cmap-node-in{animation:cmap-fade-in .32s var(--ease-out-soft) both}.cmap-node-in:focus{outline:none}.cmap-node-in:focus-visible{outline:var(--focus-outline);outline-offset:2px;border-radius:2px}@keyframes cmap-fade-in{0%{opacity:0}to{opacity:1}}.cmap-edit{display:flex;align-items:center;gap:.25rem;width:100%;height:100%;transform-origin:top center;animation:cmap-edit-in var(--dur-fast) var(--ease-out-soft)}@keyframes cmap-edit-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.cmap-edit-input{flex:1 1 auto;min-width:0;height:1.75rem;padding:0 .5rem;font-family:var(--gm-font-body);font-size:var(--fs-xs);font-weight:600;color:var(--n-900);background:var(--n-50);border:1px solid var(--n-200);border-radius:.375rem;outline:none;transition:border-color var(--dur-fast) var(--ease-out-soft)}.cmap-edit-input:focus{border-color:var(--gm-periwinkle-400)}.cmap-edit-ok,.cmap-edit-cancel{flex:0 0 auto;width:1.625rem;height:1.625rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--n-200);border-radius:.375rem;background:var(--n-50);color:var(--n-700);font-size:var(--fs-2xs);font-weight:700;cursor:pointer;transition:background var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft),border-color var(--dur-fast) var(--ease-out-soft)}.cmap-edit-ok:hover{background:var(--sage-100);color:var(--sage-700);border-color:var(--sage-300)}.cmap-edit-cancel:hover{background:var(--n-100);color:var(--n-900)}.cmap-edit-ok:active,.cmap-edit-cancel:active{transform:scale(.92)}.cmap-zoom-btn{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.cmap-zoom-btn circle{transition:fill var(--dur-fast) var(--ease-out-soft),stroke var(--dur-fast) var(--ease-out-soft)}.cmap-zoom-btn:hover circle{fill:var(--n-100);stroke:var(--n-300)}.cmap-zoom-btn:active circle{fill:var(--n-150)}.cmap-zoom-btn:focus{outline:none}.cmap-zoom-btn:focus-visible circle{stroke:var(--color-action);stroke-width:2}.page-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-gutter:stable}.dash-row{transition:background var(--dur-fast) var(--ease-out-soft),border-color var(--dur-fast) var(--ease-out-soft)}.dash-row:hover{background:color-mix(in srgb,var(--n-100) 65%,var(--n-50))}@keyframes dash-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dash-pulse-rows .dash-row,.dash-upnext-list .dash-row,.dash-week-grid .dash-day{animation:dash-in var(--dur-base) var(--ease-out-soft) both}.dash-pulse-rows .dash-row:nth-child(2),.dash-upnext-list .dash-row:nth-child(2),.dash-week-grid .dash-day:nth-child(2){animation-delay:50ms}.dash-pulse-rows .dash-row:nth-child(3),.dash-upnext-list .dash-row:nth-child(3),.dash-week-grid .dash-day:nth-child(3){animation-delay:.1s}.dash-pulse-rows .dash-row:nth-child(4),.dash-week-grid .dash-day:nth-child(4){animation-delay:.15s}.dash-pulse-rows .dash-row:nth-child(5),.dash-week-grid .dash-day:nth-child(5){animation-delay:.2s}.dash-pulse-rows .dash-row:nth-child(n+6),.dash-week-grid .dash-day:nth-child(n+6){animation-delay:.25s}.dash-pulse-legend{display:flex;gap:1.125rem;align-items:center;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--n-100);font-size:var(--fs-2xs);color:var(--n-500)}.dash-pulse-legend-key{display:flex;align-items:center;gap:.375rem}.dash-pulse-legend-bar{width:1.125rem;height:.375rem;border-radius:var(--r-pill);background:var(--n-400)}.dash-pulse-legend-line{width:2px;height:.75rem;border-radius:1px;background:var(--n-800)}.dash-pulse-rows{position:relative;max-height:20rem;overflow-y:auto;scrollbar-gutter:stable}.dash-pulse-targetline{position:absolute;inset:0;display:grid;grid-template-columns:11.25rem 1fr 5.25rem;gap:1.125rem;pointer-events:none}.dash-pulse-tl-bar{position:relative}.dash-pulse-tl-mark{position:absolute;top:.5rem;bottom:.5rem;width:2px;border-radius:1px;background:var(--n-800);transform:translate(-1px);transition:left var(--dur-base) var(--ease-out-soft)}.dash-pulse-awaiting{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:2rem 1rem 1.5rem;color:var(--n-500)}.dash-pulse-awaiting-title{font-size:var(--fs-md);color:var(--n-700)}.dash-pulse-awaiting-sub{font-size:var(--fs-sm);max-width:22rem;line-height:1.5}.dash-upnext-empty{font-size:var(--fs-sm);color:var(--n-500);line-height:1.5;padding:.5rem .25rem}.dash-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.625rem}.dash-day{cursor:pointer;display:flex;flex-direction:column;gap:.5rem;min-height:8.25rem;padding:.75rem .625rem;text-align:left;background:var(--n-50);border:1px solid var(--n-150);border-radius:.75rem;transition:background var(--dur-fast) var(--ease-out-soft),border-color var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-out-soft),box-shadow var(--dur-fast) var(--ease-out-soft)}.dash-day:hover{transform:translateY(-2px);border-color:var(--n-300);box-shadow:var(--sh-sm)}.dash-day.is-today{background:var(--gm-periwinkle-50, color-mix(in srgb, var(--gm-periwinkle-400) 12%, var(--n-0)));border-color:color-mix(in srgb,var(--gm-periwinkle-400) 45%,var(--n-150))}.dash-day-head{display:flex;align-items:baseline;justify-content:space-between}.dash-day-label{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.12em;color:var(--n-400)}.dash-day.is-today .dash-day-label{color:var(--color-action-hover, var(--color-action))}.dash-day-num{font-size:var(--fs-md);line-height:1;font-weight:500;color:var(--n-900)}.dash-day-dots{display:flex;flex-wrap:wrap;gap:.25rem}.dash-day-dot{width:.4375rem;height:.4375rem;border-radius:var(--r-pill)}.dash-day-deadlines{display:flex;flex-direction:column;gap:.3125rem}.dash-day-deadline{display:grid;grid-template-columns:.75rem 1fr;align-items:center;gap:.3125rem;font-size:var(--fs-2xs);min-width:0}.dash-day-entry-icon{color:var(--entry);justify-self:center}.dash-day-deadline-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:var(--n-900)}.dash-day-empty{font-size:var(--fs-2xs);color:var(--n-300);font-style:italic}.lab-target-row{display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:center;padding:1rem 1.25rem;background:var(--n-50);border:1px solid var(--n-150);border-radius:.75rem}.lab-target-slider{--lab-accent: var(--color-action);appearance:none;width:100%;height:.5rem;background:var(--n-200);border-radius:var(--r-pill);outline:none;cursor:pointer}.lab-target-slider::-webkit-slider-thumb{appearance:none;width:1.375rem;height:1.375rem;background:var(--lab-accent);border:var(--bw-heavy) solid var(--n-0);border-radius:var(--r-pill);box-shadow:var(--sh-sm);cursor:grab;transition:transform var(--dur-fast) var(--ease-out-soft)}.lab-target-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.lab-target-slider:active::-webkit-slider-thumb{transform:scale(1.04);cursor:grabbing}.lab-target-slider:focus-visible::-webkit-slider-thumb{box-shadow:var(--focus-ring)}.lab-target-slider::-moz-range-thumb{width:1.375rem;height:1.375rem;background:var(--lab-accent);border:var(--bw-heavy) solid var(--n-0);border-radius:var(--r-pill);box-shadow:var(--sh-sm);cursor:grab;transition:transform var(--dur-fast) var(--ease-out-soft)}.lab-target-slider::-moz-range-thumb:hover{transform:scale(1.1)}.lab-target-slider:active::-moz-range-thumb{transform:scale(1.04);cursor:grabbing}.lab-target-slider:focus-visible::-moz-range-thumb{box-shadow:var(--focus-ring)}.lab-target-value{display:flex;align-items:baseline;gap:.25rem;font-family:var(--gm-font-display)}.lab-target-num{font-size:var(--fs-3xl);font-weight:500;color:var(--n-900);letter-spacing:-.02em;line-height:1}.lab-target-unit{font-size:var(--fs-md);color:var(--n-500)}.lab-sample-strength{display:flex;flex-direction:column;align-items:flex-end;gap:.375rem;flex-shrink:0;padding:.625rem .875rem;border-radius:.75rem;background:var(--n-50);box-shadow:inset 0 0 0 2px var(--color-border)}.lab-sample-strength-dots{display:flex;gap:.375rem}.lab-sample-strength-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--n-200);transition:background .32s var(--ease-out-soft)}.lab-sample-strength-dot.is-filled{background:var(--n-700)}.lab-sample-strength-text{display:flex;flex-direction:column;align-items:flex-end;gap:.0625rem}.lab-sample-strength-label{font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.04em;color:var(--n-800)}.lab-sample-strength-count{font-size:var(--fs-2xs);color:var(--n-500)}.lab-sample-strength.is-no-sample .lab-sample-strength-dot.is-filled{background:var(--n-400)}.lab-sample-strength.is-early-sample .lab-sample-strength-dot.is-filled{background:var(--n-500)}.lab-sample-strength.is-working-sample .lab-sample-strength-dot.is-filled{background:var(--color-action)}.lab-sample-strength.is-strong-sample .lab-sample-strength-dot.is-filled{background:var(--sage-500)}.lab-sample-strength.is-locked-sample .lab-sample-strength-dot.is-filled{background:var(--sage-600, var(--sage-500))}.lab-page-staged{position:relative;display:flex;flex-direction:column;height:100%;min-height:0;padding:0}.lab-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 2rem .75rem;flex:0 0 auto}.lab-header-title-wrap{display:flex;flex-direction:column;gap:.125rem}.lab-header-kicker{font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.18em;color:var(--color-action)}.lab-header-title{font-size:var(--fs-xl);letter-spacing:-.02em;color:var(--n-900);margin:0;line-height:1.1}.lab-stepper{display:flex;align-items:center;gap:.25rem}.lab-step{display:inline-flex;align-items:center;gap:.4375rem;padding:.375rem .8125rem .375rem .4375rem;border-radius:var(--r-pill);background:transparent;border:1px solid transparent;font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:600;color:var(--n-500);cursor:pointer;transition:background .18s var(--ease-out-soft),color .18s var(--ease-out-soft),border-color .18s var(--ease-out-soft)}.lab-step:disabled{cursor:default}.lab-step-num{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--n-150);color:var(--n-600);font-size:var(--fs-2xs);font-weight:700;transition:background .18s var(--ease-out-soft),color .18s var(--ease-out-soft)}.lab-step:hover:not(:disabled):not(.is-active){background:var(--n-100);color:var(--n-800)}.lab-step.is-active{color:var(--color-action-hover, var(--color-action));background:var(--gm-periwinkle-50, color-mix(in srgb, var(--gm-periwinkle-400) 12%, var(--n-0)));border-color:color-mix(in srgb,var(--gm-periwinkle-400) 35%,transparent)}.lab-step.is-active .lab-step-num{background:var(--color-action);color:var(--n-0)}.lab-step.is-done{color:var(--n-700)}.lab-step.is-done .lab-step-num{background:var(--n-700);color:var(--n-0)}.lab-planner-body,.lab-staged-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.25rem 2rem 2rem;display:flex;flex-direction:column;gap:1rem}.lab-act{display:flex;flex-direction:column;gap:1rem;animation:lab-act-in .38s var(--ease-out-soft) both}@keyframes lab-act-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.lab-act-head{display:flex;flex-direction:column;gap:.25rem;padding:.5rem 0 0}.lab-act-title{font-size:var(--fs-xl);letter-spacing:-.01em;color:var(--n-900);margin:0;line-height:1.15}.lab-act-sub{font-size:var(--fs-sm);color:var(--n-500);margin:0}.lab-act-nav{display:flex;justify-content:space-between;gap:.75rem;padding-top:.25rem}.lab-section{display:flex;flex-direction:column;gap:.875rem;padding:1.25rem 1.5rem;background:var(--n-0);border-radius:.875rem;box-shadow:var(--sh-sm),inset 0 0 0 2px var(--color-border);animation:page-in .36s var(--ease-out-soft) both}.lab-section-head{display:flex;flex-direction:column;gap:.25rem}.lab-section-label{font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--n-500);margin:0}.lab-section-sub{font-size:var(--fs-xs);color:var(--n-600);line-height:1.5;margin:0}.lab-empty .lab-empty-hint,.lab-section .lab-empty-hint{font-size:var(--fs-xs);color:var(--n-600);margin:0}.lab-context{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.125rem;background:var(--n-50);border-radius:.75rem;box-shadow:inset 0 0 0 2px var(--color-border)}.lab-context-class{display:flex;align-items:center;gap:.625rem;min-width:0}.lab-context-name{font-size:var(--fs-md);color:var(--n-900);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-inputs{gap:1rem}.lab-input-row{display:grid;grid-template-columns:10rem 1fr;gap:1rem;align-items:center}.lab-input-label{font-family:var(--gm-font-body);font-size:var(--fs-xs);font-weight:600;color:var(--n-800)}.lab-avail-input{display:flex;flex-direction:column;gap:.5rem}.lab-input-hint{font-size:var(--fs-2xs);color:var(--n-500);margin:0;max-width:62ch;line-height:1.4}.lab-availability{display:flex;flex-direction:column;gap:.375rem;margin-top:.125rem}.lab-avail-grid-head,.lab-avail-row{display:grid;grid-template-columns:3.5rem repeat(3,minmax(0,1fr));gap:.5rem;align-items:center}.lab-avail-col{display:flex;flex-direction:column;align-items:center;line-height:1.1}.lab-avail-col-label{font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:600;color:var(--n-600)}.lab-avail-col-sub{font-size:var(--fs-2xs);color:var(--n-400);transform:scale(.85)}.lab-avail-day{font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:600;color:var(--n-700)}.lab-avail-cell{height:2.125rem;border-radius:.5rem;background:var(--n-50);border:1px solid var(--n-200);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--n-0);transition:background .16s var(--ease-out-soft),border-color .16s var(--ease-out-soft)}.lab-avail-cell:hover{background:var(--n-100)}.lab-avail-cell.is-active{background:var(--lab-accent, var(--color-action));border-color:var(--lab-accent, var(--color-action))}.lab-building{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4.5rem 0;text-align:center;animation:lab-act-in .3s var(--ease-out-soft) both}.lab-building-flask{position:relative;animation:lab-flask-pulse 1.1s var(--ease-out-soft) infinite}@keyframes lab-flask-pulse{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.06)}}.lab-building-bubble{position:absolute;top:.125rem;left:50%;width:.3125rem;height:.3125rem;border-radius:50%;background:currentColor;opacity:0;animation:lab-bubble 1.2s ease-in-out infinite}.lab-building-bubble:nth-child(2){margin-left:-.5rem;animation-delay:0s}.lab-building-bubble:nth-child(3){margin-left:0;animation-delay:.4s}.lab-building-bubble:nth-child(4){margin-left:.4375rem;animation-delay:.8s}@keyframes lab-bubble{0%{transform:translateY(6px) scale(.6);opacity:0}30%{opacity:.85}to{transform:translateY(-18px) scale(1);opacity:0}}.lab-building-status{font-family:var(--gm-font-body);font-size:var(--fs-sm);font-weight:600;color:var(--n-700)}.lab-building-bar{width:13.75rem;height:.3125rem;border-radius:var(--r-pill);background:var(--n-150);overflow:hidden}.lab-building-bar span{display:block;height:100%;width:0;border-radius:var(--r-pill);animation:lab-bar-fill 1.5s var(--ease-out-soft) forwards}@keyframes lab-bar-fill{0%{width:0}to{width:100%}}.lab-plan-reveal{display:flex;flex-direction:column;gap:1rem;animation:lab-act-in .42s var(--ease-out-soft) both}.lab-standing{gap:.75rem}.lab-standing-line{display:flex;align-items:center;gap:.5rem;margin:0;font-size:var(--fs-sm);line-height:1.5;color:var(--n-800)}.lab-standing-line svg{color:var(--n-600);flex-shrink:0}.lab-standing-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:.625rem}.lab-standing-tile{display:flex;flex-direction:column;gap:.25rem;padding:.75rem .875rem;background:var(--n-50);border-radius:.625rem;box-shadow:inset 0 0 0 2px var(--color-border)}.lab-standing-tile.tone-sage{background:color-mix(in srgb,var(--sage-50) 55%,var(--n-0))}.lab-standing-tile.tone-amber{background:color-mix(in srgb,var(--amber-50) 55%,var(--n-0))}.lab-standing-tile.tone-rose{background:color-mix(in srgb,var(--rose-50) 55%,var(--n-0))}.lab-standing-tile-label{font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--n-500)}.lab-standing-tile-value{font-size:var(--fs-xl);font-weight:600;letter-spacing:-.02em;color:var(--n-900);line-height:1.05}.lab-standing-tile-value>span{font-size:var(--fs-sm);font-weight:500;color:var(--n-500);margin-left:.125rem}.lab-focus-list{display:flex;flex-direction:column;gap:.5rem;list-style:none;margin:0;padding:0}.lab-focus-row{display:grid;grid-template-columns:1.75rem minmax(0,2fr) auto;gap:.875rem;align-items:center;padding:.75rem .875rem;background:var(--n-50);border-radius:.625rem;box-shadow:inset 0 0 0 2px var(--color-border)}.lab-focus-row.is-top{background:color-mix(in srgb,var(--gm-periwinkle-50, var(--n-50)) 60%,var(--n-0));box-shadow:inset 0 0 0 1px var(--color-action)}.lab-focus-rank{display:inline-flex;align-items:center;justify-content:center;width:1.625rem;height:1.625rem;border-radius:50%;background:var(--n-200);color:var(--n-700);font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:700}.lab-focus-row.is-top .lab-focus-rank{background:var(--color-action);color:var(--n-0)}.lab-focus-body{display:flex;flex-direction:column;gap:.125rem;min-width:0}.lab-focus-name{font-size:var(--fs-sm);font-weight:600;color:var(--n-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-focus-meta{font-size:var(--fs-2xs);color:var(--n-500)}.lab-focus-target{display:flex;flex-direction:column;align-items:flex-end;gap:0;min-width:6.875rem}.lab-focus-target-label{font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--n-500)}.lab-focus-target-value{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.02em;color:var(--n-900);line-height:1.05}.lab-focus-target-value>span{font-size:var(--fs-2xs);font-weight:500;color:var(--n-500);margin-left:.0625rem}.lab-focus-target-range{font-size:var(--fs-2xs);color:var(--n-500);margin-top:.0625rem}.lab-schedule{gap:.875rem}.lab-schedule-warn{color:var(--amber-600, var(--amber-500));font-weight:600}.lab-schedule-days{display:flex;flex-direction:column;gap:.625rem}.lab-schedule-day{display:flex;flex-direction:column;gap:.375rem}.lab-schedule-day-head{font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--n-600);padding-left:.25rem}.lab-schedule-sessions{display:flex;flex-direction:column;gap:.375rem;list-style:none;margin:0;padding:0}.lab-schedule-session{display:grid;grid-template-columns:7.5rem 1fr;gap:.75rem;padding:.625rem .75rem;background:var(--n-50);border-radius:.625rem;box-shadow:inset 0 0 0 2px var(--color-border);align-items:center}.lab-schedule-session-time{display:flex;flex-direction:column;gap:.0625rem}.lab-schedule-session-clock{font-family:var(--gm-font-body);font-size:var(--fs-xs);font-weight:700;color:var(--n-800)}.lab-schedule-session-duration{font-size:var(--fs-2xs);color:var(--n-500)}.lab-schedule-session-body{display:grid;grid-template-columns:3px 1fr;gap:.625rem;align-items:stretch;min-height:1.75rem}.lab-schedule-session-bar{border-radius:2px}.lab-schedule-session-text{display:flex;flex-direction:column;gap:.0625rem;min-width:0}.lab-schedule-session-note{font-size:var(--fs-xs);font-weight:600;color:var(--n-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-schedule-session-item{font-size:var(--fs-2xs);color:var(--n-500)}.lab-schedule-cta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding-top:.375rem;border-top:1px solid var(--n-150);margin-top:.25rem;padding-top:.875rem}.lab-schedule-cta-help{margin:0;font-size:var(--fs-2xs);color:var(--n-500);line-height:1.4;flex:1;min-width:12.5rem}.lab-cold{display:grid;grid-template-columns:1.75rem 1fr;gap:.875rem;align-items:start;background:color-mix(in srgb,var(--n-50) 60%,var(--n-0))}.lab-cold>svg{color:var(--n-600);margin-top:.125rem}.lab-cold-body{display:flex;flex-direction:column;gap:.5rem}.lab-cold-title{font-size:var(--fs-base);color:var(--n-900);letter-spacing:-.01em;margin:0}.lab-cold-text{margin:0;font-size:var(--fs-xs);color:var(--n-700);line-height:1.55}.lab-cold-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(11.25rem,1fr));gap:.5rem;margin-top:.25rem}.lab-cold-fact{display:flex;flex-direction:column;gap:.125rem;padding:.5rem .625rem;background:var(--n-0);border-radius:.5rem;box-shadow:inset 0 0 0 2px var(--color-border)}.lab-cold-fact-label{font-family:var(--gm-font-body);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--n-500)}.lab-cold-fact-value{font-size:var(--fs-md);font-weight:600;letter-spacing:-.02em;color:var(--n-900)}.lab-duration-row{display:flex;gap:.5rem;flex-wrap:wrap}.lab-duration-opt{flex:1 1 0;min-width:7rem;display:flex;flex-direction:column;gap:.125rem;padding:.625rem .75rem;border:1px solid var(--n-150);border-radius:.625rem;background:var(--n-0);text-align:left;transition:border-color .15s,background .15s}.lab-duration-opt.is-active{border-color:var(--lab-accent);background:color-mix(in srgb,var(--lab-accent) 10%,var(--n-0))}.lab-duration-opt-label{font-weight:600;font-size:var(--fs-sm);color:var(--n-900)}.lab-duration-opt-sub{font-size:var(--fs-2xs);color:var(--n-500)}.lab-history{margin-top:1.25rem}.lab-history-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.875rem}.lab-history-list{display:flex;flex-direction:column;gap:.5rem}.lab-history-row{display:flex;align-items:center;gap:.875rem;padding:.75rem .875rem;border:1px solid var(--n-150);border-radius:.625rem;background:var(--n-0);transition:border-color var(--dur-fast) var(--ease-out-soft)}.lab-history-row:hover{border-color:var(--n-300)}.lab-history-row.is-active{border-color:color-mix(in srgb,var(--sage-500) 40%,var(--n-150));background:color-mix(in srgb,var(--sage-50) 50%,var(--n-0))}.lab-history-main{flex:1;min-width:0}.lab-history-title{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:var(--fs-sm);color:var(--n-900)}.lab-history-badge{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--sage-600, var(--sage-500));background:var(--sage-50);padding:.0625rem .375rem;border-radius:var(--r-pill)}.lab-history-meta{margin-top:.1875rem}.lab-reused-note{display:flex;align-items:center;gap:.5rem;padding:.625rem .875rem;margin-bottom:.875rem;border-radius:.625rem;background:color-mix(in srgb,var(--sage-50) 70%,var(--n-0));border:1px solid color-mix(in srgb,var(--sage-400) 30%,var(--n-150));color:var(--sage-600, var(--sage-500));font-size:var(--fs-sm);font-weight:500}.today-study-icon{color:var(--row-mid);flex-shrink:0}.today-timeline-row.is-study .today-timeline-card{box-shadow:0 0 0 1px color-mix(in srgb,var(--row-mid) 32%,transparent),0 10px 24px -10px color-mix(in srgb,var(--row-mid) 55%,transparent)}.cal-event.is-study{box-shadow:0 0 0 1px color-mix(in srgb,var(--ev-mid) 45%,transparent),0 6px 18px -7px color-mix(in srgb,var(--ev-mid) 60%,transparent)}.feedback-backdrop{position:fixed;inset:0;background:#141210b3;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:550;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out-soft)}.feedback-backdrop.is-open{opacity:1;pointer-events:auto}.feedback-dialog{width:100%;max-width:30rem;background:var(--n-0);box-shadow:var(--sh-lg);transform:translateY(10px) scale(.95);transition:transform var(--dur-fast) var(--ease-out-soft)}.feedback-backdrop.is-open .feedback-dialog{transform:translateY(0) scale(1);transition:transform var(--dur-base) var(--ease-out-soft)}.app-shell.is-narrow{grid-template-columns:1fr}.app-shell.is-narrow .app-header{grid-template-columns:auto 1fr auto}.app-shell.is-narrow .header-page{left:0}.app-shell.is-narrow .sidebar{position:fixed;top:var(--header-h);left:0;width:var(--sidebar-w-expanded);height:calc(100dvh - var(--header-h));z-index:40;transform:translate(-100%);transition:transform var(--dur-base) var(--ease-out-soft);box-shadow:var(--float)}.app-shell.is-narrow.drawer-open .sidebar{transform:translate(0)}.sidebar-backdrop{position:fixed;inset:var(--header-h) 0 0 0;z-index:35;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-out-soft)}.app-shell.drawer-open .sidebar-backdrop{opacity:1;pointer-events:auto}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:900px){.stack-narrow{grid-template-columns:1fr!important}.landing-root>div{padding:2.5rem 1.5rem!important}.landing-root>div:last-child{justify-content:center}.landing-preview{display:none}}@media(max-width:560px){.landing-brand{gap:.75rem!important;margin-bottom:1.5rem!important}.landing-brand .logo{height:3rem!important;width:12.3rem!important}}.landing-hero-item{opacity:0;animation:landing-rise var(--dur-slow) var(--ease-out-soft) forwards}.landing-hero-item:nth-child(1){animation-delay:.05s}.landing-hero-item:nth-child(2){animation-delay:.16s}.landing-hero-item:nth-child(3){animation-delay:.27s}@keyframes landing-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.landing-preview{margin-top:2.5rem;max-width:30rem}.ltp{display:block;overflow:visible}.ltp-line{stroke-dasharray:1;stroke-dashoffset:1;animation:ltp-draw 1.1s var(--ease-out-soft) .35s forwards}.ltp-ghost{stroke-dasharray:1;stroke-dashoffset:1;animation:ltp-draw .5s var(--ease-out-soft) 1.35s forwards}@keyframes ltp-draw{to{stroke-dashoffset:0}}.ltp-node{opacity:0;transform-box:fill-box;transform-origin:center;animation:ltp-node-in var(--dur-base) var(--spring) forwards}.ltp-target-line{opacity:0;animation:ltp-fade-line var(--dur-slow) var(--ease-out-soft) 1.6s forwards}.ltp-stamp{opacity:0;transform-box:fill-box;transform-origin:center;animation:ltp-fade-stamp var(--dur-slow) var(--spring) 1.7s forwards}@keyframes ltp-node-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes ltp-fade-line{to{opacity:.55}}@keyframes ltp-fade-stamp{0%{opacity:0;transform:scale(.8) rotate(-4deg)}to{opacity:1;transform:scale(1) rotate(-4deg)}}@media(hover:none){.grade-edit-hint{opacity:.7}.work-row-actions{opacity:1;pointer-events:auto}.today-timeline-rowwrap .today-timeline-meta{opacity:1}}@media(pointer:coarse){.cal-event,.cmap-node-in{touch-action:none}.card,.work-row,.cal-event,.nav-item{-webkit-touch-callout:none}.app-header .icon-btn{min-width:2.75rem;min-height:2.75rem}}.toaster{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:1500;display:flex;flex-direction:column;gap:.6rem;width:min(24rem,calc(100vw - 2rem));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:.6rem;padding:.7rem .75rem .7rem .7rem;background:var(--color-surface);color:var(--color-text);border:var(--bw) solid var(--color-border);border-radius:var(--r-md, 12px);box-shadow:var(--pop);cursor:grab}.toast:active{cursor:grabbing}.toast-icon{display:grid;place-items:center;flex:0 0 auto;width:1.5rem;height:1.5rem;border-radius:var(--r-sm, 8px);border:var(--bw-hair, 1.5px) solid var(--color-border);color:var(--ink)}.toast[data-variant=success] .toast-icon{background:var(--sage-100);color:var(--sage-700)}.toast[data-variant=error] .toast-icon{background:var(--rose-50);color:var(--rose-500)}.toast[data-variant=info] .toast-icon{background:var(--color-action-soft, var(--gm-periwinkle-50));color:var(--color-action)}.toast-message{flex:1 1 auto;min-width:0;font-size:var(--fs-sm);font-weight:600;line-height:1.3}.toast-action{flex:0 0 auto;padding:.3rem .6rem;font-size:var(--fs-xs);font-weight:800;color:var(--color-action);background:transparent;border:var(--bw-hair, 1.5px) solid var(--color-action);border-radius:var(--r-pill, 999px);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-out-soft)}.toast-action:hover{background:var(--color-action-soft, var(--gm-periwinkle-50))}.toast-action:active{transform:scale(.96)}.toast-close{flex:0 0 auto;display:grid;place-items:center;width:1.4rem;height:1.4rem;color:var(--n-500, var(--ink));background:transparent;border:none;border-radius:var(--r-sm, 8px);cursor:pointer;opacity:.6;transition:opacity var(--dur-fast) var(--ease-out-soft),background-color var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-out-soft)}.toast-close:hover{opacity:1;background:color-mix(in srgb,var(--ink) 8%,transparent)}.toast-close:active{transform:scale(.9)}.qg-root{position:fixed;inset:0;z-index:600}.qg-root.is-open .search-backdrop{opacity:1}.qg-panel{position:fixed;top:12vh;left:50%;transform:translate(-50%);width:calc(100% - 24px);max-width:34rem;max-height:74vh;display:flex;flex-direction:column;background:var(--color-surface);color:var(--color-text);border:var(--bw) solid var(--color-border);border-radius:var(--r-lg);box-shadow:var(--pop);overflow:hidden}.qg-body{flex:1;overflow-y:auto;padding:.5rem}.qg-classes,.qg-results{display:flex;flex-direction:column;gap:.3rem}.qg-class-head{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem .6rem;background:transparent;border:none;border-radius:var(--r-md);cursor:pointer;font:inherit;color:var(--color-text);text-align:left;transition:background var(--dur-fast) var(--ease-out-soft)}.qg-class-head:hover{background:var(--n-100)}.qg-class-name{flex:1;font-weight:700}.qg-class-count{margin-left:auto}.qg-class-body{display:flex;flex-direction:column;gap:.25rem;padding:.15rem 0 .35rem 1.65rem}.qg-row{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .6rem;background:var(--n-0);border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-md);cursor:pointer;font:inherit;color:var(--color-text);text-align:left;transition:border-color var(--dur-fast) var(--ease-out-soft),transform var(--dur-fast) var(--ease-out-soft)}.qg-row:hover{border-color:var(--color-action)}.qg-row:active{transform:scale(.99)}.qg-row-editing{cursor:default}.qg-row-editing:active{transform:none}.qg-row-name{flex:1;font-weight:600}.qg-row-grade{font-weight:800}.qg-grade-input{flex:1}.qg-result-row{display:flex;flex-direction:column;gap:.3rem;padding:.3rem;border-radius:var(--r-md)}.qg-result-class{display:flex;align-items:center;gap:.375rem}.qg-empty{padding:.5rem .6rem}.lab-header-kicker{display:inline-block;font-size:var(--fs-2xs);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--color-action);margin-bottom:.15rem}.study-input{width:100%;padding:.5rem .6rem;border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-md);background:var(--n-0);color:var(--color-text);font:inherit}.cv-btn-sm{padding:.35rem .7rem;font-size:var(--fs-xs)}.study-page,.study-session-page{max-width:66rem;margin:0 auto;display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem}.study-page-head,.study-session-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.study-session-headtitle{display:flex;flex-direction:column;gap:.15rem}.study-session-class{font-size:var(--fs-xs);font-weight:600;color:var(--n-500)}.study-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem}.study-mode-card{display:flex;align-items:center;gap:.75rem;padding:.9rem;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--r-lg);box-shadow:var(--pop-sm)}.study-mode-card.is-locked{opacity:.68}.study-mode-icon{flex-shrink:0;width:2.25rem;height:2.25rem;border-radius:var(--r-md);background:var(--color-action-soft);color:var(--color-action);display:inline-flex;align-items:center;justify-content:center}.study-mode-text{flex:1;min-width:0}.study-mode-label{font-size:var(--fs-md);font-weight:800}.study-mode-blurb{font-size:var(--fs-xs);color:var(--n-500);line-height:1.4}.study-mode-lock{flex-shrink:0;font-size:var(--fs-2xs);font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--n-500);background:var(--n-100);border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-pill);padding:.25rem .6rem}.study-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.study-stat{display:flex;flex-direction:column;gap:.3rem;padding:1rem;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--r-lg);box-shadow:var(--pop-sm)}.study-stat-icon{width:1.9rem;height:1.9rem;border-radius:var(--r-sm);background:var(--color-action-soft);color:var(--color-action);display:inline-flex;align-items:center;justify-content:center}.study-stat-num{font-size:var(--fs-2xl);font-weight:800;line-height:1}.study-stat-label{font-size:var(--fs-xs);font-weight:600;color:var(--n-500)}.study-recent{padding:1.125rem}.study-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.study-card-title-wrap{display:flex;align-items:center;gap:.5rem;color:var(--color-action)}.study-card-title{font-size:var(--fs-md);font-weight:800;color:var(--color-text)}.study-session-list{display:flex;flex-direction:column;gap:.375rem;list-style:none;margin:0;padding:0}.study-session-row{display:flex;align-items:stretch;gap:.35rem;width:100%;background:var(--n-0);border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-md);transition:border-color var(--dur-fast) var(--ease-out-soft)}.study-session-row:hover{border-color:var(--color-action)}.study-session-row-main{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0;padding:.6rem .7rem;background:transparent;border:none;border-radius:var(--r-md);cursor:pointer;font:inherit;color:var(--color-text);text-align:left;transition:transform var(--dur-fast) var(--ease-out-soft)}.study-session-row-main:active{transform:scale(.995)}.study-session-del{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;margin:.3rem .3rem .3rem 0;border:none;border-radius:var(--r-sm);background:transparent;color:var(--n-400);cursor:pointer;transition:color var(--dur-fast) var(--ease-out-soft),background var(--dur-fast) var(--ease-out-soft)}.study-session-del:hover{color:var(--rose-600, var(--rose-500));background:var(--rose-50, var(--n-100))}.study-session-dot{width:.6rem;height:.6rem;border-radius:var(--r-pill);flex-shrink:0}.study-session-main{flex:1;display:flex;flex-direction:column;min-width:0}.study-session-title{font-weight:700}.study-session-meta{font-size:var(--fs-xs);color:var(--n-500)}.gm-active-overlay{position:fixed;left:1rem;bottom:1rem;z-index:60;display:flex;align-items:stretch;gap:.35rem;padding:.35rem;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--r-lg);box-shadow:var(--pop);animation:gm-overlay-in var(--dur-med, .24s) var(--ease-out-soft) both}@keyframes gm-overlay-in{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.gm-active-overlay{animation:none}}.gm-active-overlay-main{display:flex;align-items:center;gap:.55rem;padding:.4rem .6rem;background:transparent;border:none;border-radius:var(--r-md);cursor:pointer;font:inherit;color:var(--color-text);text-align:left;transition:background var(--dur-fast) var(--ease-out-soft)}.gm-active-overlay-main:hover{background:var(--color-action-soft)}.gm-active-overlay-dot{width:.55rem;height:.55rem;border-radius:var(--r-pill);background:var(--n-400);flex-shrink:0}.gm-active-overlay-dot.is-live{background:var(--color-action);animation:gm-overlay-pulse 2s var(--ease-out-soft) infinite}@keyframes gm-overlay-pulse{0%,to{box-shadow:0 0 0 0 var(--color-action-soft)}50%{box-shadow:0 0 0 .28rem transparent}}@media(prefers-reduced-motion:reduce){.gm-active-overlay-dot.is-live{animation:none}}.gm-active-overlay-text{display:flex;flex-direction:column;min-width:0;line-height:1.15}.gm-active-overlay-kicker{font-size:var(--fs-2xs);font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--color-action)}.gm-active-overlay-title{font-size:var(--fs-xs);font-weight:600;color:var(--n-600);max-width:11rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gm-active-overlay-time{font-size:var(--fs-lg);font-weight:800;color:var(--color-text);font-variant-numeric:tabular-nums;margin-left:.15rem}.gm-active-overlay-btn{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;border:var(--bw) solid var(--color-border);border-radius:var(--r-md);background:var(--color-action);color:var(--n-0);cursor:pointer;transition:transform var(--dur-fast) var(--spring, var(--ease-out-soft)),filter var(--dur-fast) var(--ease-out-soft)}.gm-active-overlay-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}.gm-active-overlay-btn:active{transform:translateY(1px)}.session-workspace-page{max-width:none;width:100%;height:100dvh;padding:1.1rem 1.25rem}.ws-grid{--ws-rail-w: 16rem;display:grid;gap:.85rem;align-items:stretch;flex:1;min-height:28rem}.ws-grid-split{grid-template-columns:var(--ws-rail-w) minmax(0,1fr) minmax(0,1.42fr)}.ws-grid-viewer,.ws-grid-notes{grid-template-columns:var(--ws-rail-w) minmax(0,1fr)}.ws-rail{display:flex;flex-direction:column;gap:.75rem;min-height:0;overflow:hidden}.ws-rail>.todo-list{flex-shrink:0;max-height:40%;overflow:auto}.ws-rail>.content-panel{flex:1;min-height:0}.ws-rail>.session-timer{flex-shrink:0}.ws-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--r-lg);box-shadow:var(--pop-sm);overflow:hidden}.ws-panel-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .6rem;border-bottom:var(--bw) solid var(--color-border);background:var(--n-25, var(--color-surface));flex-shrink:0}.ws-panel-titlewrap{display:flex;align-items:center;gap:.45rem;color:var(--color-action);min-width:0}.panel-title{font-size:var(--fs-sm);font-weight:800;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-title-btn{background:transparent;border:none;cursor:text;padding:.1rem .25rem;border-radius:var(--r-sm);text-align:left;max-width:18rem}.panel-title-btn:hover{background:var(--color-action-soft)}.panel-title-input{font-size:var(--fs-sm);font-weight:800;color:var(--color-text);background:var(--n-0);border:var(--bw) solid var(--color-action);border-radius:var(--r-sm);padding:.1rem .35rem;max-width:18rem}.ws-panel-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.ws-panel-iconbtn{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-sm);background:var(--n-0);color:var(--n-600);cursor:pointer;transition:color var(--dur-fast) var(--ease-out-soft),border-color var(--dur-fast) var(--ease-out-soft)}.ws-panel-iconbtn:hover{color:var(--color-action);border-color:var(--color-action)}.ws-panel-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}.viewer-body{flex:1;min-height:0;display:flex}.viewer-frame,.viewer-img{width:100%;height:100%;border:none;background:var(--n-100)}.viewer-img{object-fit:contain}.viewer-empty,.canvas-empty,.np-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:1.5rem}.session-canvas-wrap{flex:1;min-height:0;height:100%;position:relative}.session-canvas-wrap .excalidraw{height:100%}.viewer-fallback{margin:auto;color:var(--n-500);font-size:var(--fs-sm)}.viewer-linkbox{margin:auto;display:flex;flex-direction:column;align-items:center;gap:.6rem;color:var(--color-action)}.viewer-linkbox-url{font-size:var(--fs-xs);color:var(--n-500);word-break:break-all;max-width:22rem;text-align:center}.notes-modetoggle{display:inline-flex;gap:.2rem;padding:.2rem;background:var(--n-100);border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-pill)}.notes-modetab{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .7rem;border:none;border-radius:var(--r-pill);background:transparent;color:var(--n-600);font-size:var(--fs-xs);font-weight:700;cursor:pointer;transition:background var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft)}.notes-modetab.is-active{background:var(--color-action);color:var(--n-0)}.content-panel{display:flex;flex-direction:column;overflow:hidden}.cp-scroll{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.15rem}.cp-group-head{display:flex;align-items:center;gap:.25rem;margin-top:.35rem}.cp-group-toggle{flex:1;display:flex;align-items:center;gap:.35rem;padding:.3rem .2rem;background:transparent;border:none;cursor:pointer;color:var(--n-600);font-size:var(--fs-xs);font-weight:800;text-transform:uppercase;letter-spacing:.03em}.cp-group-count{color:var(--n-400);font-weight:700}.cp-group-add{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-sm);background:var(--n-0);color:var(--color-action);cursor:pointer}.cp-group-add:hover{background:var(--color-action-soft)}.cp-list{list-style:none;margin:0 0 .1rem;padding:0;display:flex;flex-direction:column;gap:.1rem}.cp-hint{font-size:var(--fs-xs);color:var(--n-400);padding:.2rem .4rem .3rem 1.2rem}.cp-row{display:flex;align-items:center;border-radius:var(--r-sm);padding-left:.6rem}.cp-row:hover{background:var(--n-100)}.cp-row.is-selected{background:var(--color-action-soft)}.cp-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:.4rem;padding:.32rem .2rem;background:transparent;border:none;cursor:pointer;color:var(--color-text);font-size:var(--fs-xs);font-weight:600;text-align:left}.cp-row-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-row-act{display:none;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border:none;background:transparent;color:var(--n-400);cursor:pointer;border-radius:var(--r-sm)}.cp-row:hover .cp-row-act,.cp-row:focus-within .cp-row-act{display:inline-flex}.cp-row-act:hover{color:var(--color-action)}.cp-rename-input{flex:1;margin:.15rem .3rem;padding:.25rem .4rem;font-size:var(--fs-xs);border:var(--bw) solid var(--color-action);border-radius:var(--r-sm);background:var(--n-0);color:var(--color-text)}.cp-file-actions{display:flex;gap:.35rem;padding:.4rem .2rem .2rem}.cp-link-form{display:flex;gap:.35rem;padding:.2rem}.cp-link-form .study-input{flex:1;min-width:0}.session-timer{align-items:stretch}.st-dial{width:100%;max-width:8.5rem;margin:.1rem auto .4rem;aspect-ratio:1}.st-presets{display:flex;justify-content:center;gap:.3rem;margin-bottom:.5rem}.st-preset{padding:.22rem .55rem;border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-pill);background:var(--n-0);color:var(--n-600);font-size:var(--fs-2xs);font-weight:700;cursor:pointer}.st-preset.is-active{background:var(--color-action);color:var(--n-0);border-color:var(--color-action)}.st-preset:disabled{opacity:.5;cursor:default}.st-controls{display:flex;gap:.4rem;justify-content:center}.np-root{flex:1;min-height:0;display:flex;flex-direction:column}.np-titlebar{display:flex;align-items:center;gap:.6rem;padding:.55rem .9rem .15rem}.np-title{flex:1;min-width:0;border:none;background:transparent;color:var(--color-text);font-size:var(--fs-xl);font-weight:800}.np-title:focus{outline:none}.np-savestate{flex-shrink:0;font-size:var(--fs-2xs);font-weight:700;color:var(--n-400)}.np-savestate-saved{color:var(--sage-600, var(--n-500))}.np-toolbar{display:flex;flex-wrap:wrap;gap:.4rem;padding:.4rem .75rem;border-block:var(--bw-hair) solid var(--color-border);position:sticky;top:0;background:var(--color-surface);z-index:1}.np-tb-group{display:flex;gap:.15rem;padding-right:.4rem;border-right:var(--bw-hair) solid var(--color-border)}.np-tb-group:last-child{border-right:none}.np-tb-btn{display:inline-flex;align-items:center;justify-content:center;min-width:1.75rem;height:1.75rem;padding:0 .3rem;border:none;border-radius:var(--r-sm);background:transparent;color:var(--n-700);font-size:var(--fs-xs);font-weight:700;cursor:pointer;transition:background var(--dur-fast) var(--ease-out-soft)}.np-tb-btn:hover{background:var(--n-100)}.np-tb-btn.is-active{background:var(--color-action);color:var(--n-0)}.np-editor{flex:1;min-height:0;overflow:auto;padding:.6rem .4rem 2rem}.np-editor .ProseMirror{min-height:100%;padding:.4rem .9rem;outline:none;font-size:var(--fs-md);line-height:1.6;color:var(--color-text)}.np-editor .ProseMirror:focus{outline:none}.np-editor .ProseMirror h1{font-size:var(--fs-2xl);font-weight:800;margin:.6em 0 .3em}.np-editor .ProseMirror h2{font-size:var(--fs-xl);font-weight:800;margin:.6em 0 .3em}.np-editor .ProseMirror h3{font-size:var(--fs-lg);font-weight:800;margin:.5em 0 .3em}.np-editor .ProseMirror p{margin:.35em 0}.np-editor .ProseMirror ul,.np-editor .ProseMirror ol{padding-left:1.4em;margin:.35em 0}.np-editor .ProseMirror blockquote{border-left:3px solid var(--color-border);padding-left:.8em;margin:.5em 0;color:var(--n-600)}.np-editor .ProseMirror code{background:var(--n-100);border-radius:var(--r-sm);padding:.1em .3em;font-size:.9em}.np-editor .ProseMirror a{color:var(--color-action);text-decoration:underline}.np-editor .ProseMirror ul[data-type=taskList]{list-style:none;padding-left:.3em}.np-editor .ProseMirror ul[data-type=taskList] li{display:flex;align-items:flex-start;gap:.5em}.np-editor .ProseMirror ul[data-type=taskList] li>label{margin-top:.28em}.np-editor .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--n-400);float:left;height:0;pointer-events:none}@media(max-width:900px){.ws-grid,.ws-grid-split,.ws-grid-viewer,.ws-grid-notes{grid-template-columns:1fr;height:auto}.ws-rail{overflow:visible}.ws-panel{min-height:26rem}}.study-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.75rem}.study-review-artifacts{display:flex;flex-direction:column;gap:.6rem}.study-review-artifact{padding:.75rem;background:var(--n-0);border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-md)}.study-review-artifact-head{display:flex;align-items:center;gap:.5rem;font-weight:700;margin-bottom:.25rem}.study-review-meta{font-size:var(--fs-xs);color:var(--n-500)}.study-review-text{white-space:pre-wrap;font-size:var(--fs-sm);line-height:1.5}.study-review-todo{display:flex;flex-direction:column;gap:.25rem}.study-review-muted{color:var(--n-500)}.cv,.canvas-card,.notes-editor,.focus-timer,.todo-list{display:flex;flex-direction:column;gap:.7rem;padding:1rem;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--r-lg);box-shadow:var(--pop-sm)}.cv-layout{display:flex;flex-direction:column;gap:.7rem}.cv-list{display:flex;flex-direction:column;gap:.375rem}.cv-item-main{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;background:var(--n-0);border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-md)}.cv-item-title{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cv-item-remove,.todo-remove{flex-shrink:0;border:none;background:transparent;color:var(--n-400);cursor:pointer;display:inline-flex;padding:.2rem;border-radius:var(--r-sm)}.cv-item-remove:hover,.todo-remove:hover{color:var(--rose-500);background:var(--n-100)}.cv-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.cv-link-form{display:flex;gap:.5rem}.cv-open-link{color:var(--color-action);font-weight:700;text-decoration:none}.cv-open-link:hover{text-decoration:underline}.cv-preview{border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-md);overflow:hidden;background:var(--n-50)}.cv-preview-frame{width:100%;height:360px;border:none;display:block}.cv-preview-img{width:100%;display:block}.cv-preview-fallback{padding:1.5rem;text-align:center;color:var(--n-500);font-size:var(--fs-sm)}.sc-body{position:relative;display:flex;flex-direction:column;gap:.5rem}.sc-canvas{width:100%;height:320px;display:block;background:var(--n-0);border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-md);touch-action:none;cursor:crosshair}.sc-pens{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.sc-text{width:100%;min-height:4rem;resize:vertical;padding:.5rem .6rem;border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-md);background:var(--n-0);color:var(--color-text);font:inherit}.focus-timer{align-items:center;text-align:center}.ft-body{display:flex;flex-direction:column;align-items:center;gap:.4rem}.ft-dial{font-family:var(--gm-font-display);font-size:var(--fs-display);font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--color-text)}.ft-controls{display:flex;gap:.5rem}.ft-presets{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center}.notes-title-input{border:none;background:transparent;outline:none;color:var(--color-text);font-family:var(--gm-font-display);font-size:var(--fs-md);font-weight:800}.notes-body{min-height:200px;resize:vertical;padding:.6rem .7rem;border:var(--bw-hair) solid var(--color-border);border-radius:var(--r-md);background:var(--n-0);color:var(--color-text);font:inherit;font-size:var(--fs-sm);line-height:1.5}.todo-add{display:flex;gap:.5rem}.todo-items{display:flex;flex-direction:column;gap:.3rem;list-style:none;margin:0;padding:0}.todo-items li{display:flex;align-items:center;gap:.5rem}.todo-check{flex-shrink:0}.todo-text{flex:1}.todo-text.is-done{text-decoration:line-through;color:var(--n-400)}.todo-count{font-size:var(--fs-xs);color:var(--n-500)}.study-modal-root{position:fixed;inset:0;z-index:600}.study-modal-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - 24px);max-width:40rem;max-height:84vh;overflow-y:auto;display:flex;flex-direction:column;gap:.9rem;padding:1.25rem;background:var(--color-surface);color:var(--color-text);border:var(--bw) solid var(--color-border);border-radius:var(--r-xl);box-shadow:var(--pop)}.study-modal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}@media(max-width:900px){.study-workspace{grid-template-columns:1fr}.study-stats{grid-template-columns:1fr 1fr}.study-page,.study-session-page{padding:1rem}.qg-panel{max-width:none}}@media(max-width:560px){.study-stats,.study-modes{grid-template-columns:1fr}}.lab-class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.6rem}.lab-step-label{font-size:var(--fs-2xs);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--n-500);margin-bottom:.35rem}.lab-schedule-session-study{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--fs-xs);font-weight:700;color:var(--color-action);background:transparent;border:none;border-radius:var(--r-pill);padding:.15rem .4rem;cursor:pointer}.lab-schedule-session-study:hover{background:var(--color-action-soft)}@media(max-width:900px){.lab-class-grid{grid-template-columns:1fr 1fr}}.lab-target-warning{margin:.4rem 0 0;padding:.5rem .7rem;font-size:var(--fs-xs);font-weight:600;line-height:1.4;color:var(--ink);background:color-mix(in srgb,var(--apricot) 22%,var(--cream));border:var(--bw-hair) solid var(--apricot);border-radius:var(--r-md)}.lecture-view{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;min-height:100dvh}.lecture-view-empty{align-items:center;justify-content:center}.lecture-topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.lecture-topbar-lead{display:flex;align-items:center;gap:.6rem}.lecture-topbar-title{display:flex;flex-direction:column;gap:.1rem}.lecture-topbar-class{font-family:var(--gm-font-display);font-size:var(--fs-xl);font-weight:800;line-height:1.05}.lecture-timer{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-sm);font-weight:700;color:var(--n-500);background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--r-pill);padding:.4rem .9rem;box-shadow:var(--pop-sm)}.lecture-timer strong{font-size:var(--fs-md);font-variant-numeric:tabular-nums;color:var(--color-text)}.lecture-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:1rem;flex:1 1 auto;min-height:0}.lecture-material,.lecture-side{display:flex;flex-direction:column;min-height:0;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--r-lg);box-shadow:var(--pop-sm);overflow:hidden}.lecture-material-head{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;border-bottom:var(--bw) solid var(--color-border)}.lecture-material-switch{flex:1}.lecture-material-name{flex:1;text-align:center;font-weight:700;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lecture-material-body{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;background:var(--n-0);overflow:auto}.lecture-material-frame{width:100%;height:100%;border:none}.lecture-material-img{max-width:100%;max-height:100%;object-fit:contain}.lecture-material-empty{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:2rem;text-align:center;color:var(--n-500);font-size:var(--fs-sm)}.lecture-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:var(--bw) solid var(--color-border)}.lecture-tab{padding:.65rem .75rem;background:transparent;border:none;border-right:var(--bw) solid var(--color-border);font:inherit;font-weight:700;color:var(--n-500);cursor:pointer;transition:background var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft)}.lecture-tab:last-child{border-right:none}.lecture-tab:hover{background:var(--n-100)}.lecture-tab.is-active{background:var(--color-action-soft);color:var(--color-action)}.lecture-side-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.lecture-canvas{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.lecture-canvas-tools{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;border-bottom:var(--bw-hair) solid var(--color-border)}.lecture-pen{width:1.35rem;height:1.35rem;border-radius:var(--r-pill);border:var(--bw) solid var(--color-border);cursor:pointer;padding:0}.lecture-pen.is-active{outline:2px solid var(--color-action);outline-offset:2px}.lecture-canvas-clear{margin-left:auto}.lecture-canvas-surface{flex:1 1 auto;width:100%;min-height:0;background:var(--n-0);touch-action:none;cursor:crosshair}.lecture-notes{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.lecture-notes-body{flex:1 1 auto;min-height:0;resize:none;border:none;outline:none;padding:.85rem;background:var(--n-0);color:var(--color-text);font:inherit;font-size:var(--fs-sm);line-height:1.6}.lecture-notes-foot{display:flex;justify-content:flex-end;padding:.5rem .6rem;border-top:var(--bw-hair) solid var(--color-border)}@media(max-width:900px){.lecture-grid{grid-template-columns:1fr}.lecture-view{min-height:0}.lecture-material-body,.lecture-canvas-surface{min-height:320px}}.gm-combobox{position:relative;width:100%}.gm-combobox-control{display:flex;align-items:center;gap:.5rem;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--r-md);box-shadow:var(--pop-sm);padding:0 .75rem;transition:box-shadow var(--dur-fast) var(--ease-out-soft),border-color var(--dur-fast) var(--ease-out-soft)}.gm-combobox-control:focus-within{border-color:var(--color-action);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-action) 28%,transparent)}.gm-combobox-control.is-disabled{opacity:.55;box-shadow:none;cursor:not-allowed}.gm-combobox-input{flex:1 1 auto;min-width:0;border:none;outline:none;background:transparent;color:var(--color-text);font-family:inherit;font-size:var(--fs-base);padding:.5rem 0}.gm-combobox-input::placeholder{color:color-mix(in srgb,var(--color-text) 45%,transparent)}.gm-combobox-input:disabled{cursor:not-allowed}.gm-combobox-caret{flex:0 0 auto;display:inline-flex;color:color-mix(in srgb,var(--color-text) 60%,transparent);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out-soft)}.gm-combobox-control.is-open .gm-combobox-caret{transform:rotate(180deg);color:var(--color-action)}.gm-combobox-listbox{z-index:700;margin:0;padding:.375rem;list-style:none;overflow-y:auto;overscroll-behavior:contain;background:var(--color-surface);border:var(--bw) solid var(--color-border);border-radius:var(--r-md);box-shadow:var(--pop);transform-origin:top center;animation:gm-combobox-open var(--dur-base, .18s) var(--ease-out-soft) both}@keyframes gm-combobox-open{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.gm-combobox-listbox{animation-duration:1ms}}.gm-combobox-group-header{padding:.5rem .625rem .25rem;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:color-mix(in srgb,var(--color-text) 55%,transparent)}.gm-combobox-option{padding:.5rem .625rem;border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--dur-fast) var(--ease-out-soft),color var(--dur-fast) var(--ease-out-soft)}.gm-combobox-option.is-active{background:var(--color-action-soft);color:var(--color-action)}.gm-combobox-option.is-selected{font-weight:700;color:var(--color-action)}.gm-combobox-option.is-selected.is-active{background:var(--color-action);color:var(--color-on-action)}.gm-combobox-empty{padding:.75rem .625rem;font-size:var(--fs-sm);color:color-mix(in srgb,var(--color-text) 55%,transparent);text-align:center}.gm-skel-text{display:flex;flex-direction:column}.gm-skel-row{display:flex;align-items:center;gap:.75rem}.gm-skel-row-body{display:flex;flex-direction:column;gap:.4rem;flex:1 1 auto;min-width:0}.gm-skel-card{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--cream);border:var(--bw) solid var(--color-border);border-radius:var(--r-lg);box-shadow:var(--pop-sm)}.gm-skel-card-body{margin-top:.25rem}.gm-btn-spinner{display:inline-flex;align-items:center;gap:.4rem;vertical-align:middle;color:inherit}.gm-btn-spinner-icon{display:block;animation:gm-btn-spin .6s linear infinite}.gm-btn-spinner-label{font-size:var(--fs-sm);line-height:1}@keyframes gm-btn-spin{to{transform:rotate(360deg)}}.gm-loading-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg, var(--cream));padding:2rem;z-index:60}.gm-loading-inner{display:flex;flex-direction:column;align-items:center;gap:1rem;width:min(22rem,100%);text-align:center}.gm-loading-mark{display:flex;gap:.5rem}.gm-loading-dot{width:14px;height:14px;border-radius:var(--r-sm);background:var(--color-action);border:var(--bw) solid var(--color-border);animation:gm-loading-bob 1.1s var(--ease-out-soft) infinite}.gm-loading-dot:nth-child(2){animation-delay:.14s;background:var(--color-action-soft)}.gm-loading-dot:nth-child(3){animation-delay:.28s}@keyframes gm-loading-bob{0%,to{transform:translateY(0)}40%{transform:translateY(-8px)}}.gm-loading-message{margin:0;font-size:var(--fs-md);font-weight:700;color:var(--color-text)}.gm-loading-track{position:relative;width:100%;height:12px;overflow:hidden;background:var(--cream);border:var(--bw) solid var(--color-border);border-radius:var(--r-pill);box-shadow:var(--pop-sm)}.gm-loading-fill{height:100%;border-radius:var(--r-pill);background:var(--color-action);transition:width var(--dur-base) var(--ease-out-soft)}.gm-loading-track.is-indeterminate .gm-loading-fill{position:absolute;left:0;width:40%;animation:gm-loading-sweep 1.4s var(--ease-out-soft) infinite}@keyframes gm-loading-sweep{0%{transform:translate(-110%)}to{transform:translate(275%)}}.gm-loading-percent{margin:0;font-size:var(--fs-sm);font-weight:700;color:var(--color-action);font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){.gm-btn-spinner-icon,.gm-loading-dot,.gm-loading-track.is-indeterminate .gm-loading-fill{animation-duration:.01ms;animation-iteration-count:1}.gm-loading-track.is-indeterminate .gm-loading-fill{width:100%;transform:none}}
