.db-iconbar{position:absolute;top:32px;right:40px;z-index:60;display:flex;gap:12px;align-items:center}.db-iconbar .icon-btn{width:40px;height:40px;border:1px solid var(--light, #EAEAE0);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-family:var(--font-en, "Source Sans 3");font-size:14px;position:relative;color:var(--black, #30302B);text-decoration:none;transition:border-color .2s}.db-iconbar .icon-btn:hover{border-color:var(--black, #30302B)}.db-iconbar .icon-btn .badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;background:var(--yellow, #FFE315);border:1px solid var(--black, #30302B);border-radius:999px;font-family:var(--font-en, "Source Sans 3");font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center}.db-iconbar .notif-pop{position:absolute;top:48px;right:0;width:340px;max-height:460px;background:#fff;border:1px solid var(--light, #EAEAE0);border-radius:8px;box-shadow:0 14px 32px #30302b1f;z-index:80;display:flex;flex-direction:column}.db-iconbar .notif-pop[hidden]{display:none}.db-iconbar .notif-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--light, #EAEAE0);font-family:var(--font-tc, "Noto Sans TC");font-size:13px;font-weight:800}.db-iconbar .notif-head button{background:none;border:none;padding:0;font-family:var(--font-tc, "Noto Sans TC");font-size:11px;font-weight:700;color:var(--gray, #6E6E64);cursor:pointer;text-decoration:underline}.db-iconbar .notif-list{list-style:none;margin:0;padding:0;overflow-y:auto;overscroll-behavior:contain;flex:1}.db-iconbar .notif-list li{padding:12px 14px;border-bottom:1px solid var(--light, #EAEAE0);font-family:var(--font-tc, "Noto Sans TC");font-size:13px;cursor:pointer}.db-iconbar .notif-list li:last-child{border-bottom:none}.db-iconbar .notif-list li:hover{background:#ffe3150f}.db-iconbar .notif-list li.unread{background:#ffe3150a}.db-iconbar .notif-list li .nt{font-weight:800;margin-bottom:2px;font-size:13px}.db-iconbar .notif-list li .nb{color:var(--gray, #6E6E64);font-size:12px;line-height:1.4}.db-iconbar .notif-list li .nd{color:var(--gray, #6E6E64);font-size:10px;margin-top:4px;font-family:var(--font-en, "Source Sans 3");letter-spacing:.05em}.db-iconbar .notif-empty{color:var(--gray, #6E6E64);text-align:center;padding:28px 14px!important;cursor:default!important}.db-iconbar .notif-footer{display:block;padding:10px 14px;text-align:center;border-top:1px solid var(--light, #EAEAE0);font-family:var(--font-en, "Source Sans 3");font-size:11px;font-weight:800;letter-spacing:.15em;color:var(--black, #30302B);text-decoration:none;text-transform:uppercase}.db-iconbar .notif-footer:hover{background:var(--cream, #FAF6E8)}.cmdk-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh}.cmdk-modal[hidden]{display:none}.cmdk-modal .cmdk-backdrop{position:absolute;inset:0;background:#30302b66}.cmdk-modal .cmdk-panel{position:relative;width:100%;max-width:560px;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 24px 48px #30302b3d}.cmdk-modal .cmdk-panel input{width:100%;padding:16px 20px;border:none;outline:none;box-sizing:border-box;font-family:var(--font-tc, "Noto Sans TC");font-size:16px;border-bottom:1px solid var(--light, #EAEAE0)}.cmdk-modal .cmdk-results{list-style:none;margin:0;padding:8px 0;max-height:320px;overflow-y:auto;overscroll-behavior:contain}.cmdk-modal .cmdk-results li{padding:10px 20px;cursor:pointer;font-family:var(--font-tc, "Noto Sans TC");font-size:14px;display:flex;gap:10px;align-items:center}.cmdk-modal .cmdk-results li.active{background:var(--cream, #FAF6E8)}.cmdk-modal .cmdk-results li .k{font-family:var(--font-en, "Source Sans 3");font-size:10px;letter-spacing:.15em;color:var(--gray, #6E6E64);font-weight:700;text-transform:uppercase;min-width:56px}.cmdk-modal .cmdk-hint{padding:10px 20px;font-family:var(--font-en, "Source Sans 3");font-size:11px;color:var(--gray, #6E6E64);border-top:1px solid var(--light, #EAEAE0);letter-spacing:.05em}@media(max-width:900px){.db-iconbar{top:16px;right:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.btn-sweep{background-image:linear-gradient(var(--color-courify-yellow),var(--color-courify-yellow));background-repeat:no-repeat;background-position:left center;background-size:0% 100%;transition:background-size .4s cubic-bezier(.65,0,.35,1),color .25s ease,border-color .25s ease}.btn-sweep:hover,.btn-sweep:focus-visible{background-size:100% 100%;color:var(--color-courify-black)}.btn-sweep:active{transform:scale(.97)}.tilt-glare{position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:0;z-index:4;background:radial-gradient(circle at var(--gx, 50%) var(--gy, 50%),rgba(255,227,21,.32),transparent 55%)}.parallax-frame{overflow:hidden}.parallax-frame>img,.parallax-frame [data-parallax]{width:100%;height:124%;object-fit:cover;will-change:transform}.dashboard-shell,.d-shell{--yellow: var(--color-courify-yellow, #FFE315);--black: var(--color-courify-black, #30302B);--cream: var(--color-courify-cream, #FAF6E8);--dark: #1A1A14;--gray: #6E6E64;--d-gray: #6E6E64;--light: #EAEAE0;--hairline: rgba(48, 48, 43, .14);--d-hairline: rgba(48, 48, 43, .14);--font-en: "Source Sans 3", sans-serif;--font-tc: "Noto Sans TC", sans-serif;font-family:var(--font-en),var(--font-tc);background:var(--cream);color:var(--black);-webkit-font-smoothing:antialiased;display:grid;grid-template-columns:260px 1fr;min-height:100vh}.dashboard-shell .sidebar{background:var(--black);color:var(--cream);padding:32px 0;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.dashboard-shell .sidebar .brand-block{padding:0 28px 28px;border-bottom:1px solid rgba(250,246,232,.1)}.dashboard-shell .sidebar .brand-block img{height:36px;filter:brightness(0) invert(1)}.dashboard-shell .nav-section{padding:24px 16px;flex:1;overflow-y:auto;scrollbar-width:none}.dashboard-shell .nav-section::-webkit-scrollbar{width:0;display:none}.dashboard-shell .nav-section .lbl{font-family:var(--font-en);font-size:10px;letter-spacing:.25em;color:#faf6e866;text-transform:uppercase;font-weight:700;padding:16px 12px 8px;margin-top:8px}.dashboard-shell .nav-section .lbl:first-child{margin-top:0}.dashboard-shell .nav-section a{display:flex;align-items:center;gap:12px;padding:12px 14px;color:#faf6e8d9;text-decoration:none;border-radius:6px;font-family:var(--font-tc);font-size:14px;font-weight:500;transition:background .2s,color .2s;position:relative}.dashboard-shell .nav-section a .ico{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-en);font-size:11px;font-weight:700;line-height:1;opacity:.9;border:1.2px solid currentColor;border-radius:50%;flex-shrink:0}.dashboard-shell .nav-section a:hover{background:#faf6e80f;color:#fff}.dashboard-shell .nav-section a.active{background:var(--yellow);color:var(--black);font-weight:700}.dashboard-shell .nav-section a .count{margin-left:auto;font-family:var(--font-en);font-size:11px;font-weight:700}.dashboard-shell .nav-section a .count-learning{color:#faf6e88c;letter-spacing:.04em}.dashboard-shell .nav-section a.active .count-learning{color:#30302ba6}.dashboard-shell .nav-section a .count-notifications{background:var(--yellow);color:var(--black);padding:2px 8px;border-radius:999px}.dashboard-shell .nav-section a.active .count-notifications{background:var(--black);color:var(--yellow)}.dashboard-shell .user-card{padding:16px 20px;margin:16px;background:#faf6e80a;border:1px solid rgba(250,246,232,.1);display:flex;align-items:center;gap:12px}.dashboard-shell .user-card .avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--yellow);flex-shrink:0;display:flex;align-items:center;justify-content:center}.dashboard-shell .user-card .avatar .avatar-fallback{font-family:var(--font-tc, sans-serif);font-weight:800;font-size:16px;color:#30302b}.dashboard-shell .user-card .avatar img{width:100%;height:100%;object-fit:cover}.dashboard-shell .user-card .info{flex:1;min-width:0}.dashboard-shell .user-card .info .n{font-family:var(--font-tc);font-size:13px;font-weight:700}.dashboard-shell .user-card .info .s{font-family:var(--font-en);font-size:11px;color:var(--yellow);letter-spacing:.1em}.dashboard-shell .user-card .logout-btn{width:32px;height:32px;flex-shrink:0;background:transparent;color:#faf6e88c;border:1px solid rgba(250,246,232,.18);font-family:var(--font-en);font-size:14px;font-weight:700;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,border-color .2s}.dashboard-shell .user-card .logout-btn:hover{background:var(--yellow);color:var(--black);border-color:var(--yellow)}.dashboard-shell .main{padding:32px 40px 60px;max-width:1280px;margin:0 auto;width:100%;position:relative}.dashboard-shell .d-head{margin-bottom:32px;padding-right:160px}@media(max-width:640px){.dashboard-shell .d-head{padding-right:0}}.dashboard-shell .d-head .crumb{font-family:var(--font-en);font-size:12px;color:var(--gray);margin-bottom:14px}.dashboard-shell .d-head .crumb a{color:var(--gray);text-decoration:none}.dashboard-shell .d-head .crumb a:hover{color:var(--black)}.dashboard-shell .d-head h1{font-family:var(--font-tc);font-size:40px;font-weight:900;letter-spacing:-.02em;margin-bottom:8px}.dashboard-shell .d-head .sub{font-family:var(--font-tc);color:var(--gray);font-size:14px}.d-mbar,.d-sb-close,.d-overlay{display:none}.dashboard-shell .d-mbar{align-items:center;gap:12px;position:sticky;top:0;z-index:50;margin:-24px -24px 20px;padding:12px 16px;background:var(--black);border-bottom:1px solid rgba(250,246,232,.1)}.dashboard-shell .d-mbar-toggle{width:40px;height:40px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--black);color:var(--black);border-radius:8px;cursor:pointer}.dashboard-shell .d-mbar-logo{display:inline-flex;align-items:center}.dashboard-shell .d-mbar-logo img{height:28px;filter:brightness(0) invert(1)}.dashboard-shell .brand-block{position:relative;display:flex;align-items:center;justify-content:space-between}.dashboard-shell .d-sb-close{background:transparent;border:none;color:var(--cream);font-size:28px;line-height:1;cursor:pointer;padding:0 4px}@media(max-width:1024px){.dashboard-shell{grid-template-columns:1fr}.dashboard-shell .main{min-width:0;padding:24px}.dashboard-shell .sidebar{position:fixed;top:0;left:0;z-index:60;width:264px;max-width:82vw;height:100dvh;transform:translate(-100%);transition:transform .25s ease;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}body.dsb-open .dashboard-shell .sidebar{transform:translate(0);box-shadow:0 0 40px #0006}.dashboard-shell .d-mbar{display:flex}.dashboard-shell .d-sb-close{display:inline-flex}.d-overlay{display:block;position:fixed;inset:0;z-index:55;background:#30302b8c}.d-overlay[hidden]{display:none}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
