.app-header[data-v-9ea0d62f]{background:var(--color-background);border-bottom:2px solid hsla(0,0%,100%,.149);gap:0;height:var(--space-64);left:0;padding:var(--space-12) var(--space-32);position:fixed;right:0;top:0;z-index:10}.app-header[data-v-9ea0d62f],.app-header>.brand-info[data-v-9ea0d62f]{align-items:center;display:flex;justify-content:space-between}.app-header>.brand-info[data-v-9ea0d62f]{width:180px}@media (max-width:576px){.app-header>.brand-info[data-v-9ea0d62f]{width:150px}}.app-header>.user-info>.avatar[data-v-9ea0d62f]{border:1px solid var(--color-white);border-radius:var(--border-radius-round)}.session-schedule[data-v-5f20ebfd]{background:var(--color-white);padding:var(--space-16)}@media (max-width:576px){.session-schedule[data-v-5f20ebfd]{padding:var(--space-12)}}.session-schedule>.header[data-v-5f20ebfd]{align-items:center;display:flex;gap:var(--space-16);justify-content:space-between;margin-bottom:var(--space)}.session-schedule>.header>.line[data-v-5f20ebfd]{background:var(--color-gray-2);flex:1;height:1px}.session-schedule>.header>.month[data-v-5f20ebfd]{color:var(--color-text-2);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing);line-height:var(--line-height-md);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}@media (max-width:576px){.session-schedule>.header>.month[data-v-5f20ebfd]{color:var(--color-text-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing);line-height:var(--line-height-sm);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}}.session-list[data-v-5f20ebfd]{display:grid;gap:var(--space);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.progress-panel[data-v-7b1b9637]{display:flex;flex-direction:column;gap:var(--space-16)}@media (max-width:768px){.progress-panel[data-v-7b1b9637]{flex-direction:column-reverse;gap:var(--space-24)}}.progress-panel>.image-cover[data-v-7b1b9637]{text-align:center}@media (max-width:768px){.progress-panel>.image-cover[data-v-7b1b9637]{display:none}}.progress-card[data-v-7b1b9637]{background:var(--color-white);border-radius:var(--border-radius-lg);display:flex;flex-direction:column;gap:var(--space-12);padding:var(--space-12) var(--space-16)}@media (max-width:576px){.progress-card[data-v-7b1b9637]{gap:var(--space);padding:var(--space-12)}}.progress-card>.title[data-v-7b1b9637]{color:var(--color-text-1);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing);line-height:var(--line-height-lg);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}@media (max-width:576px){.progress-card>.title[data-v-7b1b9637]{color:var(--color-text-1);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing);line-height:var(--line-height-md);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}}.progress-item[data-v-7b1b9637]{border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding-bottom:var(--space-12)}.progress-item[data-v-7b1b9637]:last-child{border-bottom:none;flex-direction:column;gap:var(--space);padding-bottom:0}.progress-item .label[data-v-7b1b9637]{color:var(--color-text-1);font-weight:var(--font-weight-semi)}.progress-item .label[data-v-7b1b9637],.progress-item .value[data-v-7b1b9637]{font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing);line-height:var(--line-height-sm);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}.progress-item .value[data-v-7b1b9637]{align-items:center;color:var(--color-text-2);display:flex;font-weight:var(--font-weight-regular);gap:4px}.progress-item>.unit-stats[data-v-7b1b9637]{display:flex;flex-direction:column;gap:var(--space)}.user-card[data-v-7b1b9637]{background:#ffffff4d;border-radius:var(--border-radius-lg);padding:var(--space-16);position:relative;text-align:center}.user-card>.name[data-v-7b1b9637]{color:var(--color-white);font-size:var(--font-size-md);font-weight:var(--font-weight-semi);letter-spacing:var(--letter-spacing);line-height:var(--line-height-md);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}.user-card>.name[data-v-7b1b9637]:after{border-left:var(--space-12) solid transparent;border-right:var(--space-12) solid transparent;border-top:var(--space-12) solid hsla(0,0%,100%,.302);bottom:calc(var(--space-12)*-1);content:"";left:50%;position:absolute;transform:translate(-50%)}.progress-bar[data-v-7b1b9637]{background:var(--color-gray-6);border-radius:var(--border-radius-xl);height:var(--space-16);position:relative}@media (max-width:576px){.progress-bar[data-v-7b1b9637]{height:var(--space-12)}}.progress-bar>.bar[data-v-7b1b9637]{border-radius:var(--border-radius-xl);height:100%;position:absolute}.progress-bar>.bar.-actual[data-v-7b1b9637]{background:var(--color-green);z-index:2}.progress-bar>.bar.-expected[data-v-7b1b9637]{background:var(--color-blue)}.dot[data-v-7b1b9637]{border-radius:var(--border-radius-round);display:inline-block;height:10px;width:10px}.dot.-actual[data-v-7b1b9637]{background:var(--color-green)}.dot.-expected[data-v-7b1b9637]{background:var(--color-blue)}.learning-dashboard[data-v-978efd5d]{background:linear-gradient(180deg,var(--color-background) 50.06%,#a9daec 100%);display:grid;gap:var(--space-16);grid-template-columns:1fr 300px;height:100vh;padding:84px 64px 0}@media (max-width:768px){.learning-dashboard[data-v-978efd5d]{grid-template-columns:1fr;height:100%;padding:84px 32px 32px}}@media (max-width:576px){.learning-dashboard[data-v-978efd5d]{padding:84px 16px 16px}}.learning-dashboard>.progress-panel[data-v-978efd5d]{margin:var(--space-48) 0 auto 0}@media (max-width:768px){.learning-dashboard>.progress-panel[data-v-978efd5d]{grid-row:1;margin-top:0}}.main-content[data-v-978efd5d]{display:flex;flex-direction:column;height:calc(100vh - 84px)}@media (max-width:768px){.main-content[data-v-978efd5d]{height:auto}}.main-content>.title[data-v-978efd5d]{color:var(--color-white);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing);line-height:var(--line-height-xl);margin-bottom:var(--space-16);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}@media (max-width:576px){.main-content>.title[data-v-978efd5d]{color:var(--color-white);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing);line-height:var(--line-height-lg);margin-bottom:var(--space);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}}.main-content>.navbar[data-v-978efd5d]{align-items:center;background:var(--color-white);border-bottom:1px solid var(--color-gray-2);border-top-left-radius:var(--space-16);border-top-right-radius:var(--space-16);display:flex;gap:var(--space-12);justify-content:flex-start;padding:var(--space-16)}@media (max-width:768px){.main-content>.navbar[data-v-978efd5d]{border-radius:0;box-shadow:0 2px 8px #0000001a;height:60px;padding:var(--space-12);position:sticky;top:var(--space-64);z-index:2}}.main-content>.navbar>.today-button[data-v-978efd5d]{background:var(--color-white);border:1px solid var(--color-gray-3);border-radius:var(--border-radius-md);color:var(--color-text-1);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-semi);letter-spacing:var(--letter-spacing);line-height:var(--line-height-sm);padding:var(--space-10) var(--space-16);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}@media (max-width:576px){.main-content>.navbar>.today-button[data-v-978efd5d]{color:var(--color-text-1);font-size:var(--font-size-xs);font-weight:var(--font-weight-semi);letter-spacing:var(--letter-spacing);line-height:var(--line-height-xs);padding:var(--space) var(--space-12);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}}.main-content>.navbar>.title[data-v-978efd5d]{color:var(--color-text-1);font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing);line-height:var(--line-height-lg);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}@media (max-width:576px){.main-content>.navbar>.title[data-v-978efd5d]{color:var(--color-text-1);font-size:var(--font-size-md);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing);line-height:var(--line-height-md);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}}.main-content>.monthly-sessions[data-v-978efd5d]{flex:1;overflow-y:auto}@media (max-width:768px){.main-content>.monthly-sessions[data-v-978efd5d]{overflow-y:unset}}.session-card[data-v-978efd5d]{background:var(--color-gray-4);border-radius:var(--border-radius-lg);display:flex;flex-direction:column;gap:var(--space);justify-content:space-between;padding:var(--space-12)}@media (max-width:576px){.session-card[data-v-978efd5d]{padding:var(--space)}}.session-card.-today[data-v-978efd5d]{background:#ebf5ff;border:2px solid var(--color-blue)}.session-card.-completed[data-v-978efd5d]{background:#f0fdf4}.session-card.-late[data-v-978efd5d]{background:#fffbeb}.session-card>.header[data-v-978efd5d]{align-items:center;display:flex;gap:var(--space);justify-content:space-between}.session-card>.header .label[data-v-978efd5d]{color:var(--color-text-1);font-size:var(--font-size-sm);font-weight:var(--font-weight-semi);letter-spacing:var(--letter-spacing);line-height:var(--line-height-sm);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}.session-card>.header .label.-date[data-v-978efd5d]{flex:1}.session-card>.header .value[data-v-978efd5d]{align-items:center;color:var(--color-text-2);display:flex;font-size:var(--font-size-sm);gap:var(--space-4);line-height:var(--line-height-sm)}.session-card>.header .value[data-v-978efd5d],.session-card>.status[data-v-978efd5d]{font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}.session-card>.status[data-v-978efd5d]{font-size:var(--font-size-xs);line-height:var(--line-height-xs)}.session-card>.status[data-v-978efd5d],.session-card>.status.-completed[data-v-978efd5d]{color:var(--color-green)}.session-card>.status.-late[data-v-978efd5d]{color:var(--color-orange)}.session-card>.status.-today[data-v-978efd5d]{color:var(--color-blue)}.session-units[data-v-978efd5d]{flex:1}.session-unit[data-v-978efd5d]{align-items:center;display:flex;gap:var(--space-4);padding:var(--space-4) var(--space)}.session-unit .status[data-v-978efd5d]{aspect-ratio:.8660254038;background:var(--color-blue);clip-path:polygon(-50% 50%,50% 100%,150% 50%,50% 0);display:inline-block;height:8px}.session-unit .status.-completed[data-v-978efd5d]{background:var(--color-green)}.session-unit .status.-late[data-v-978efd5d]{background:var(--color-orange)}.session-unit .status.-today[data-v-978efd5d]{background:var(--color-blue)}.session-unit .title[data-v-978efd5d]{color:var(--color-text-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-regular);letter-spacing:var(--letter-spacing);line-height:var(--line-height-xs);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}.session-unit .title[data-v-978efd5d]:hover{color:var(--color-blue);cursor:pointer;text-decoration:underline}.session-unit .title.-completed[data-v-978efd5d]:hover{color:var(--color-green)}.session-unit .title.-late[data-v-978efd5d]:hover{color:var(--color-orange)}.badge[data-v-978efd5d]{align-items:center;background:var(--color-gray-5);border-radius:var(--border-radius-md);color:var(--color-white);display:flex;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);gap:var(--space-4);letter-spacing:var(--letter-spacing);line-height:var(--line-height-sm);padding:var(--space-4) var(--space);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-position:from-font}.badge.-completed[data-v-978efd5d]{background:var(--color-green)}.badge.-late[data-v-978efd5d]{background:var(--color-orange)}.badge.-today[data-v-978efd5d]{background:var(--color-blue)}
