@layer app-icon{@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:400;font-display:block;src:url(/material-symbols-outlined-376df7f577d1.ttf) format("truetype")}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;font-variant-ligatures:none;font-feature-settings:normal;-webkit-font-feature-settings:normal;-webkit-font-smoothing:antialiased}.app-icon{display:inline-block;inline-size:1.25rem;block-size:1.25rem;flex:0 0 1.25rem;color:currentColor;font-size:1.25rem;overflow:hidden;vertical-align:-.2em;pointer-events:none}.app-icon-button{min-inline-size:44px;min-block-size:44px}.app-icon--compact{inline-size:1rem;block-size:1rem;flex-basis:1rem;font-size:1rem}.app-icon--project-thumb{inline-size:48px;block-size:48px;flex:0 0 48px;font-size:48px;line-height:1}@media(forced-colors:active){.app-icon{color:currentColor;forced-color-adjust:auto}}}.ui-menu{position:relative}.ui-menu__list{position:absolute;z-index:var(--menu-layer, var(--layer-menu, 100));inset-block-start:calc(100% + 4px);inset-inline-start:0;min-inline-size:var(--menu-min-inline-size, 10rem);max-inline-size:min(var(--menu-max-inline-size, 22rem),calc(100vw - 16px - env(safe-area-inset-left) - env(safe-area-inset-right)));max-block-size:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:var(--menu-padding, 4px);display:flex;flex-direction:column;gap:var(--menu-item-gap, 0);overflow-y:auto;overscroll-behavior:contain;background:var(--menu-surface-background, var(--color-surface));color:var(--menu-surface-color, var(--color-text));border:var(--menu-border-width, 1px) solid var(--menu-border-color, var(--color-border));border-radius:var(--menu-radius, var(--shape-overlay, 8px));box-shadow:var(--menu-shadow, var(--elevation-menu));animation:ui-menu-enter var(--menu-motion-duration, .12s) var(--menu-motion-easing, ease-out)}.ui-menu__item{min-block-size:var(--menu-item-min-block-size, var(--control-min-block-size, 44px));padding-block:var(--spacing-control-y, 8px);padding-inline:var(--menu-item-padding-inline, var(--spacing-control-x, 12px));border:0;border-radius:var(--shape-control, 6px);background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}.ui-menu__list--portal{position:fixed;box-sizing:border-box}.ui-menu__item:hover:not(:disabled){background:var(--menu-item-hover-background, var(--color-interactive-hover))}.ui-menu__item[data-active=true]:not(:disabled){background:var( --menu-item-selected-background, var(--color-interactive-selected) )}.ui-menu__item:disabled{color:var(--color-text-muted);cursor:not-allowed;opacity:.65}@keyframes ui-menu-enter{0%{opacity:0}to{opacity:1}}@media(max-width:720px),(max-height:500px)and (pointer:coarse){.ui-menu__list{position:fixed;inset-block-start:auto;inset-block-end:max(8px,env(safe-area-inset-bottom));inset-inline-start:max(8px,env(safe-area-inset-left));inset-inline-end:max(8px,env(safe-area-inset-right));max-inline-size:none;max-block-size:calc(100dvh - max(8px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom)) - 8px)}}@media(prefers-reduced-motion:reduce){.ui-menu__list{animation:none}}@media(forced-colors:active){.ui-menu__list{background:Canvas;color:CanvasText;border-color:CanvasText;box-shadow:none;forced-color-adjust:auto}.ui-menu__item:is(:hover,[data-active=true]):not(:disabled){background:Highlight;color:HighlightText;forced-color-adjust:none}.ui-menu__item:disabled{color:GrayText;opacity:1}}.topbar.responsive-app-header{flex-wrap:nowrap}.responsive-app-header__brand{display:flex;min-width:0;align-items:center}.responsive-app-header__persistent{display:flex;min-width:0;flex:0 1 auto;align-items:center}.responsive-app-header__persistent .save-indicator{display:flex;min-width:0;align-items:center;gap:8px;white-space:normal}.responsive-app-header__persistent .save-indicator>span{min-width:0;flex:1 1 auto;overflow-wrap:anywhere}.responsive-app-header__persistent .save-indicator .btn{flex:0 0 auto}.responsive-app-header__controls{min-width:0}.responsive-app-header__toggle,.responsive-app-header__route-nav{display:none}@media(max-width:900px),(max-height:500px)and (pointer:coarse){header.topbar.responsive-app-header{position:relative;z-index:220;min-height:64px;flex:0 0 auto;flex-wrap:wrap;padding:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 8px max(12px,env(safe-area-inset-left))}.responsive-app-header__brand{flex:1 1 auto;overflow:hidden}.responsive-app-header__persistent{width:100%;flex:1 0 100%}.responsive-app-header__persistent .save-indicator{display:flex;width:100%;min-width:0;min-height:44px;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text);white-space:normal}.responsive-app-header__brand .brand{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:flex-start}.responsive-app-header__brand .brand-lockup-copy{display:none}.responsive-app-header__toggle{position:relative;z-index:3;display:inline-flex;min-width:44px;min-height:44px;flex:0 0 auto;margin-inline-start:auto;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text);font:inherit;font-size:14px;font-weight:700}.responsive-app-header__toggle svg,.responsive-app-header__toggle .app-icon{width:20px;height:20px;font-size:20px}.responsive-app-header__toggle svg{fill:none;stroke:currentcolor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}header.responsive-app-header .responsive-app-header__controls{position:absolute;z-index:2;top:calc(100% + 1px);right:max(8px,env(safe-area-inset-right));left:max(8px,env(safe-area-inset-left));display:none;max-height:calc(100dvh - 78px - env(safe-area-inset-bottom));align-items:stretch;padding:14px;border:1px solid var(--border);border-radius:0 0 14px 14px;background:var(--panel);box-shadow:0 18px 40px #0f172a3d;overflow-y:auto;overscroll-behavior:contain}header.responsive-app-header .responsive-app-header__controls[data-open=true]{display:flex}.responsive-app-header__controls .control,.responsive-app-header__controls .user-box{width:100%}.responsive-app-header__controls .control select,.responsive-app-header__controls input,.responsive-app-header__controls select,.responsive-app-header__controls textarea{width:100%;min-height:44px;font-size:16px}.responsive-app-header__controls .current-lang,.responsive-app-header__controls .save-indicator,.responsive-app-header__controls .user-email{min-height:44px;display:flex;align-items:center}.responsive-app-header__controls .user-box{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center}.responsive-app-header__controls .user-email{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-width:430px){.responsive-app-header__controls .user-box{grid-template-columns:1fr 1fr}.responsive-app-header__controls .user-email{grid-column:1 / -1}}@media(max-height:500px)and (pointer:coarse){header.topbar.responsive-app-header{min-height:52px;padding:max(4px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) 4px max(8px,env(safe-area-inset-left))}.responsive-app-header__route-nav{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.responsive-app-header__route-nav .btn{width:100%;min-width:0}.responsive-app-header__route-nav .btn[aria-current=page]{border-color:#bfdbfe;background:#dbeafe;color:#1e40af}}@media(forced-colors:active){header.responsive-app-header .responsive-app-header__controls,.responsive-app-header__persistent .save-indicator,.responsive-app-header__toggle{border-color:CanvasText}}:root{--bg: #f4f6f8;--panel: #ffffff;--border: #e1e5ea;--text: #1c2733;--muted: #475569;--primary: #2563eb;--primary-dark: #1d4ed8}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Microsoft JhengHei,PingFang TC,sans-serif}.authenticated-projects-home{display:flex;height:100dvh;min-height:0;flex-direction:column;overflow:hidden}.authenticated-projects-home .topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap}.authenticated-projects-home .brand{padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.authenticated-projects-home .controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.authenticated-projects-home .control{display:flex;flex-direction:column;gap:2px;color:var(--muted);font-size:12px}.authenticated-projects-home .control select{min-height:44px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);font-size:14px}.authenticated-projects-home .user-box{display:flex;align-items:center;gap:8px}.authenticated-projects-home .user-email{max-width:160px;overflow:hidden;color:var(--text);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.authenticated-projects-home .btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:7px 14px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);cursor:pointer;font-size:14px;transition:background-color .15s ease,border-color .15s ease}.authenticated-projects-home .button-icon{width:18px;height:18px;flex:0 0 18px;fill:currentcolor}.authenticated-projects-home .btn:hover{background:#f0f2f5}.authenticated-projects-home .btn.primary{border-color:var(--primary);background:var(--primary);color:#fff}.authenticated-projects-home .btn.primary:hover{background:var(--primary-dark)}.authenticated-projects-home .btn.ghost{color:var(--muted)}.authenticated-projects-home .btn.danger{border-color:#dc2626;background:#dc2626;color:#fff}.authenticated-projects-home .btn:disabled{cursor:not-allowed;opacity:.55}.authenticated-projects-home .verify-banner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;padding:8px 16px;border-bottom:1px solid #fcd34d;background:#fef3c7;color:#92400e;font-size:13px}.authenticated-projects-home .link-btn{min-height:44px;padding:8px;border:0;background:none;color:var(--primary);cursor:pointer;font-size:13px;text-decoration:underline}.authenticated-projects-home .workspace.landing-wrap{display:block;min-height:0;flex:1;overflow-y:auto}.authenticated-projects-home .landing{max-width:1100px;margin:0 auto;padding:32px 28px 48px}.authenticated-projects-home .landing-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.authenticated-projects-home .landing-head h1{margin:0 0 4px;font-size:24px}.authenticated-projects-home .landing-sub{margin:0;color:var(--muted);font-size:14px}.authenticated-projects-home .landing-actions,.authenticated-projects-home .landing-learning-workspaces{display:flex;flex-wrap:wrap;gap:8px}.authenticated-projects-home .landing-actions{flex:none;justify-content:flex-end;gap:10px}.authenticated-projects-home .landing-new{flex:none;min-height:44px;padding:10px 18px;font-size:15px}.authenticated-projects-home .landing-course-authoring,.authenticated-projects-home .landing-student-projects,.authenticated-projects-home .landing-import{min-height:44px}.authenticated-projects-home .projects-learning-workspace-help{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:-12px 0 20px}.authenticated-projects-home .projects-course-authoring-help{min-height:20px;margin:0;padding:8px 12px;border-left:3px solid #94a3b8;background:#f8fafc;color:#64748b;font-size:13px;line-height:1.45}.authenticated-projects-home .projects-course-authoring-help.is-visible{border-color:var(--primary);background:#eff6ff;color:#1e3a8a}.authenticated-projects-home .pi-empty{margin:0;padding:8px 4px;color:var(--muted);font-size:12px}.authenticated-projects-home .form-error{margin-bottom:8px;padding:8px 10px;border-radius:6px;background:#fee2e2;color:#b91c1c;font-size:13px}.authenticated-projects-home .landing-empty{padding:64px 16px;color:var(--muted);text-align:center}.authenticated-projects-home .landing-empty p{margin:0 0 16px;font-size:15px}.authenticated-projects-home .project-list-toolbar{display:grid;grid-template-columns:minmax(240px,2fr) repeat(2,minmax(150px,1fr));align-items:end;gap:10px;margin:0 0 18px;padding:14px;border:1px solid var(--border);border-radius:12px;background:#fff}.authenticated-projects-home .project-list-toolbar label{display:grid;min-width:0;gap:5px;color:var(--muted);font-size:12px;font-weight:700}.authenticated-projects-home .project-list-toolbar input,.authenticated-projects-home .project-list-toolbar select{width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);font:inherit;font-size:14px}.authenticated-projects-home .project-result-count{grid-column:1 / -1;color:var(--muted);font-size:13px}.authenticated-projects-home .project-filter-empty{padding-block:40px;border:1px dashed var(--border);border-radius:12px;background:#fff}.authenticated-projects-home .project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.authenticated-projects-home .project-card{position:relative;display:flex;overflow:visible;flex-direction:column;padding:0;border:1px solid var(--border);border-radius:12px;background:var(--panel);text-align:left;transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}.authenticated-projects-home .project-card-open{display:flex;width:100%;flex:1;flex-direction:column;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left;border-radius:11px}.authenticated-projects-home .project-card:has(.project-card-open:focus-visible){border-color:var(--primary);box-shadow:0 8px 24px #2563eb24}.authenticated-projects-home .project-card-open:focus-visible{outline-color:var(--focus-ring-color, #005fcc);outline-offset:2px}.authenticated-projects-home .project-card:hover{border-color:var(--primary);box-shadow:0 8px 24px #0000001a;transform:translateY(-2px)}.authenticated-projects-home .project-card-thumb{display:flex;height:120px;align-items:center;justify-content:center;border-radius:11px 11px 0 0;background:linear-gradient(135deg,#e0e7ff,#f0f9ff);background-position:center;background-size:cover}.authenticated-projects-home .project-card-thumb-icon{color:var(--primary);opacity:.7}.authenticated-projects-home .project-card-body{display:flex;flex-direction:column;gap:4px;padding:12px 14px 14px}.authenticated-projects-home .project-card-name{color:var(--text);font-size:15px;font-weight:600}.authenticated-projects-home .project-course-badge{align-self:flex-start;padding:3px 7px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:11px;font-weight:700}.authenticated-projects-home .project-card-desc{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:13px;-webkit-box-orient:vertical;line-height:1.45;-webkit-line-clamp:3}.authenticated-projects-home .project-card-meta{margin-top:2px;color:var(--muted);font-size:12px}.authenticated-projects-home .project-card-export{position:absolute;z-index:1;top:4px;right:56px;display:flex;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;background:#ffffffe6;color:var(--primary);cursor:pointer;transition:background-color .15s ease,color .15s ease}.authenticated-projects-home .project-card-export-only{right:4px}.authenticated-projects-home .project-card-export:hover,.authenticated-projects-home .project-card-export:focus-visible{background:#eff6ff;color:#1d4ed8}.authenticated-projects-home .project-card-export:disabled{cursor:wait;opacity:.7}.authenticated-projects-home .project-card-export-icon{width:22px;height:22px}.authenticated-projects-home .project-card-export-spinner{width:20px;height:20px;border:2px solid currentcolor;border-right-color:transparent;border-radius:50%;animation:project-export-spin .7s linear infinite}.authenticated-projects-home .project-card-del{position:absolute;z-index:1;top:4px;right:4px;display:flex;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid #fecaca;border-radius:6px;background:#ffffffe6;color:#b91c1c;cursor:pointer;font-size:13px;opacity:1;visibility:visible;transition:background-color .15s ease,color .15s ease}.authenticated-projects-home .project-card-del:hover{background:#fee2e2;color:#b91c1c}.authenticated-projects-home .project-card-del:focus-visible{background:#fee2e2}.authenticated-projects-home .project-card-delete-icon{display:block;width:22px;height:22px;fill:none;stroke:currentcolor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2;vector-effect:non-scaling-stroke}@keyframes project-export-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.authenticated-projects-home .project-card-export-spinner{animation:none}}.authenticated-projects-home .modal-backdrop{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:16px;background:#0f172a80}.authenticated-projects-home .modal{position:relative;width:min(560px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 32px));overflow-y:auto;padding:24px;border-radius:10px;background:#fff;box-shadow:0 10px 40px #0003}.authenticated-projects-home .modal-head,.authenticated-projects-home .modal-actions,.authenticated-projects-home .dependency-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.authenticated-projects-home .modal-head{align-items:flex-start;margin-bottom:12px;padding-right:28px}.authenticated-projects-home .modal-head h2,.authenticated-projects-home .danger-kicker{margin:0}.authenticated-projects-home .modal-close{position:absolute;top:10px;right:10px;width:44px;height:44px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.authenticated-projects-home .danger-kicker{color:#b91c1c;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.authenticated-projects-home .dependency-delete-lead{margin:-4px 0 16px;color:var(--muted);font-size:14px;line-height:1.55}.authenticated-projects-home .dependency-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:16px}.authenticated-projects-home .dependency-summary-count{display:flex;min-height:76px;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:10px 6px;border:1px solid var(--border);border-radius:8px;background:#f8fafc;text-align:center}.authenticated-projects-home .dependency-summary-count strong{font-size:22px}.authenticated-projects-home .dependency-summary-count span{color:var(--muted);font-size:11px}.authenticated-projects-home .modal-actions{justify-content:flex-end;margin-top:16px}@media(max-width:720px){.authenticated-projects-home .landing-head{align-items:stretch;flex-direction:column}.authenticated-projects-home .landing-actions,.authenticated-projects-home .landing-learning-workspaces{width:100%;justify-content:stretch}.authenticated-projects-home .landing-learning-workspaces,.authenticated-projects-home .projects-learning-workspace-help{grid-template-columns:minmax(0,1fr)}.authenticated-projects-home .landing-learning-workspaces{display:grid;flex:1 1 100%}.authenticated-projects-home .landing-actions .btn{flex:1 1 auto}.authenticated-projects-home .project-list-toolbar{grid-template-columns:minmax(0,1fr)}.authenticated-projects-home .project-result-count{grid-column:1}}@media(min-width:2560px){.authenticated-projects-home .landing{max-width:var(--layout-monitor-max-inline-size, 1760px)}.authenticated-projects-home .project-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}.authenticated-projects-home .project-card-thumb{height:150px}.authenticated-projects-home .project-card-name{font-size:17px}}@media(max-width:640px){.authenticated-projects-home .landing{padding:24px 16px 36px}.authenticated-projects-home .dependency-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.authenticated-projects-home .btn,.authenticated-projects-home .project-card{transition:none}.authenticated-projects-home .project-card:hover{transform:none}}.project-card-menu{position:absolute;top:8px;right:8px;z-index:2}.project-card-menu>button{display:grid;place-items:center;width:44px;height:44px;cursor:pointer;background:#fff;color:#1646a5;border:1px solid #dce4ed;border-radius:10px}.authenticated-projects-home .project-card-menu>button{background:#fff;border-color:#dce4ed;color:#334b70}.authenticated-projects-home .project-card-menu>button:hover,.authenticated-projects-home .project-card-menu>button[aria-expanded=true]{background:#e4ebfa}.access-state{width:min(100%,720px);height:fit-content;display:grid;grid-template-columns:auto minmax(0,1fr);align-content:start;align-self:center;gap:18px;margin:auto;padding:clamp(22px,5vw,42px);border:1px solid var(--border, #dbe3ec);border-radius:18px;background:var(--panel, #fff);box-shadow:0 18px 45px #0f172a1a}.access-state__icon{display:inline-flex;width:52px;height:52px;align-items:center;justify-content:center;border-radius:15px;background:#eaf2ff;color:#1d4ed8}.access-state__icon svg,.access-state__icon .app-icon{width:28px;height:28px;font-size:28px}.access-state__icon svg{fill:none;stroke:currentcolor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.access-state__content{min-width:0}.access-state__eyebrow{margin:0 0 6px;color:#1d4ed8;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.access-state h1,.access-state h2{margin:0;color:var(--text, #172033);font-size:clamp(24px,4vw,34px);line-height:1.18;overflow-wrap:anywhere}.access-state__description{max-width:58ch;margin:12px 0 0;color:var(--muted, #475569);font-size:16px;line-height:1.65}.access-state__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.access-state__primary,.access-state__secondary{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:10px 17px;border:1px solid #1d4ed8;border-radius:10px;font:inherit;font-size:15px;font-weight:750;text-decoration:none}.access-state__primary{background:#1d4ed8;color:#fff}.access-state__secondary{background:#fff;color:#1e3a8a}.access-state__primary:disabled,.access-state__secondary:disabled{cursor:wait;opacity:.6}.route-access-page{min-height:100dvh}.route-access-main{display:grid;min-height:calc(100dvh - 72px);place-items:center;padding:max(clamp(28px,7vw,72px),calc(env(safe-area-inset-top) + 16px)) max(16px,calc(env(safe-area-inset-right) + 16px)) max(28px,calc(env(safe-area-inset-bottom) + 16px)) max(16px,calc(env(safe-area-inset-left) + 16px));background:radial-gradient(circle at 15% 12%,rgb(37 99 235 / 11%),transparent 32%),linear-gradient(145deg,#f7faff,#fff 58%,#eff6ff)}.route-access-main .access-state{margin:0}.route-access-main--standalone{min-height:100dvh}.route-access-status{min-height:24px;margin:16px 0 0;color:var(--muted, #475569)}.route-access-status.error{color:#9f1239}@media(max-width:560px){.access-state{grid-template-columns:1fr;gap:14px;padding:22px 18px;border-radius:14px}.access-state__icon{width:46px;height:46px}.access-state__actions,.access-state__primary,.access-state__secondary{width:100%}.access-state__primary,.access-state__secondary{min-height:48px}}@media(forced-colors:active){.access-state,.access-state__icon,.access-state__primary,.access-state__secondary{border:1px solid CanvasText;forced-color-adjust:auto}}@layer design-tokens{:root{--primitive-color-canvas: #f4f6f8;--primitive-color-surface: #ffffff;--primitive-color-surface-muted: #f1f5f9;--primitive-color-border: #e1e5ea;--primitive-color-border-strong: #94a3b8;--primitive-color-text: #1c2733;--primitive-color-text-muted: #475569;--primitive-color-primary: #2563eb;--primitive-color-primary-hover: #1d4ed8;--primitive-color-primary-soft: #eff6ff;--primitive-color-primary-border: #93c5fd;--primitive-color-primary-ink: #1e3a8a;--primitive-color-focus: #005fcc;--primitive-color-warning-surface: #fffbeb;--primitive-color-warning-border: #f59e0b;--primitive-color-warning-text: #78350f;--primitive-color-danger: #b42318;--primitive-color-danger-surface: #fff1f0;--primitive-color-success: #166534;--primitive-color-success-surface: #f0fdf4;--primitive-color-success-border: #86efac;--primitive-color-code-surface: #0f172a;--primitive-color-code-text: #e2e8f0;--primitive-color-overlay: rgb(15 23 42 / 62%);--primitive-font-family-ui-en: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--primitive-font-family-ui-zh-hant: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", var(--primitive-font-family-ui-en);--primitive-font-family-ui-zh-hans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", var(--primitive-font-family-ui-en);--primitive-font-family-mono: ui-monospace, "SFMono-Regular", "Cascadia Code", Consolas, monospace;--primitive-space-0: 0;--primitive-space-0-5: .125rem;--primitive-space-1: .25rem;--primitive-space-2: .5rem;--primitive-space-3: .75rem;--primitive-space-4: 1rem;--primitive-space-5: 1.25rem;--primitive-space-6: 1.5rem;--primitive-space-8: 2rem;--primitive-space-10: 2.5rem;--primitive-space-12: 3rem;--primitive-space-16: 4rem;--size-control-min: 44px;--primitive-size-dialog-max: 36rem;--primitive-size-menu-min: 12rem;--primitive-size-menu-max: 22rem;--primitive-size-reading-max: 72rem;--primitive-size-form-max: 80rem;--primitive-size-workbench-max: 100rem;--primitive-size-monitor-max: 110rem;--primitive-border-width-thin: 1px;--primitive-border-width-strong: 2px;--primitive-focus-ring-width: 3px;--primitive-focus-ring-width-high-contrast: 4px;--primitive-focus-ring-offset: 2px;--primitive-radius-sm: .375rem;--primitive-radius-md: .5rem;--primitive-radius-lg: .75rem;--primitive-radius-xl: 1rem;--primitive-radius-pill: 999px;--primitive-shadow-control: 0 1px 2px rgb(15 23 42 / 4%);--primitive-shadow-menu: 0 12px 28px rgb(15 23 42 / 18%);--primitive-shadow-dialog: 0 24px 64px rgb(15 23 42 / 24%);--primitive-duration-instant: 0ms;--primitive-duration-fast: .15s;--primitive-duration-standard: .22s;--primitive-duration-slow: .3s;--primitive-easing-standard: cubic-bezier(.2, 0, 0, 1);--primitive-easing-exit: cubic-bezier(.4, 0, 1, 1);--primitive-motion-distance: .5rem;--primitive-layer-base: 0;--primitive-layer-sticky: 100;--primitive-layer-menu: 1200;--primitive-layer-feedback: 1300;--primitive-layer-dialog: 2000;--primitive-layer-skip-link: 4000}:root{--color-canvas: var(--primitive-color-canvas);--color-surface: var(--primitive-color-surface);--color-surface-muted: var(--primitive-color-surface-muted);--color-border: var(--primitive-color-border);--color-border-strong: var(--primitive-color-border-strong);--color-text: var(--primitive-color-text);--color-text-muted: var(--primitive-color-text-muted);--color-primary: var(--primitive-color-primary);--color-primary-hover: var(--primitive-color-primary-hover);--color-primary-surface: var(--primitive-color-primary-soft);--color-primary-border: var(--primitive-color-primary-border);--color-primary-text: var(--primitive-color-primary-ink);--color-on-primary: var(--primitive-color-surface);--color-info-surface: var(--primitive-color-primary-soft);--color-info-border: var(--primitive-color-primary-border);--color-info-text: var(--primitive-color-primary-ink);--color-warning-surface: var(--primitive-color-warning-surface);--color-warning-border: var(--primitive-color-warning-border);--color-warning-text: var(--primitive-color-warning-text);--color-danger: var(--primitive-color-danger);--color-danger-surface: var(--primitive-color-danger-surface);--color-danger-border: var(--primitive-color-danger);--color-danger-text: var(--primitive-color-danger);--color-success: var(--primitive-color-success);--color-success-surface: var(--primitive-color-success-surface);--color-success-border: var(--primitive-color-success-border);--color-success-text: var(--primitive-color-success);--color-code-surface: var(--primitive-color-code-surface);--color-code-text: var(--primitive-color-code-text);--color-overlay: var(--primitive-color-overlay);--color-focus-ring: var(--primitive-color-focus);--color-focus-ring-contrast: var(--primitive-color-surface);--color-interactive-hover: var(--primitive-color-surface-muted);--color-interactive-selected: var(--primitive-color-primary-soft);--font-family-ui-en: var(--primitive-font-family-ui-en);--font-family-ui-zh-hant: var(--primitive-font-family-ui-zh-hant);--font-family-ui-zh-hans: var(--primitive-font-family-ui-zh-hans);--font-family-ui: var(--font-family-ui-en);--font-family-mono: var(--primitive-font-family-mono);--spacing-control-x: var(--primitive-space-3);--spacing-control-y: var(--primitive-space-2);--spacing-component-gap: var(--primitive-space-3);--spacing-content-gap: var(--primitive-space-4);--spacing-dialog: var(--primitive-space-6);--spacing-menu: var(--primitive-space-2);--spacing-feedback: var(--primitive-space-4);--spacing-viewport-edge: var(--primitive-space-4);--spacing-safe-area-top: max( var(--spacing-viewport-edge), env(safe-area-inset-top) );--spacing-safe-area-right: max( var(--spacing-viewport-edge), env(safe-area-inset-right) );--spacing-safe-area-bottom: max( var(--spacing-viewport-edge), env(safe-area-inset-bottom) );--spacing-safe-area-left: max( var(--spacing-viewport-edge), env(safe-area-inset-left) );--control-min-block-size: var(--size-control-min);--layout-dialog-max-inline-size: var(--primitive-size-dialog-max);--layout-menu-min-inline-size: var(--primitive-size-menu-min);--layout-menu-max-inline-size: var(--primitive-size-menu-max);--layout-reading-max-inline-size: var(--primitive-size-reading-max);--layout-form-max-inline-size: var(--primitive-size-form-max);--layout-workbench-max-inline-size: var(--primitive-size-workbench-max);--layout-monitor-max-inline-size: var(--primitive-size-monitor-max);--border-width-default: var(--primitive-border-width-thin);--border-width-emphasis: var(--primitive-border-width-strong);--focus-ring-width-base: var(--primitive-focus-ring-width);--focus-ring-offset-base: var(--primitive-focus-ring-offset);--shape-control: var(--primitive-radius-md);--shape-surface: var(--primitive-radius-lg);--shape-overlay: var(--primitive-radius-xl);--shape-pill: var(--primitive-radius-pill);--elevation-control: var(--primitive-shadow-control);--elevation-menu: var(--primitive-shadow-menu);--elevation-overlay: var(--primitive-shadow-dialog);--motion-duration-instant: var(--primitive-duration-instant);--motion-duration-fast: var(--primitive-duration-fast);--motion-duration-standard: var(--primitive-duration-standard);--motion-duration-slow: var(--primitive-duration-slow);--motion-easing-standard: var(--primitive-easing-standard);--motion-easing-exit: var(--primitive-easing-exit);--motion-distance: var(--primitive-motion-distance);--layer-base: var(--primitive-layer-base);--layer-sticky: var(--primitive-layer-sticky);--layer-menu: var(--primitive-layer-menu);--layer-feedback: var(--primitive-layer-feedback);--layer-dialog: var(--primitive-layer-dialog);--layer-skip-link: var(--primitive-layer-skip-link)}:root:lang(en){--font-family-ui: var(--font-family-ui-en)}:root:lang(zh-Hant),:root:lang(zh-HK),:root:lang(zh-TW){--font-family-ui: var(--font-family-ui-zh-hant)}:root:lang(zh-Hans),:root:lang(zh-CN),:root:lang(zh-SG){--font-family-ui: var(--font-family-ui-zh-hans)}:root{--dialog-overlay-background: var(--color-overlay);--dialog-surface-background: var(--color-surface);--dialog-surface-color: var(--color-text);--dialog-muted-color: var(--color-text-muted);--dialog-border-color: var(--color-border-strong);--dialog-border-width: var(--border-width-default);--dialog-radius: var(--shape-overlay);--dialog-shadow: var(--elevation-overlay);--dialog-padding: var(--spacing-dialog);--dialog-gap: var(--spacing-content-gap);--dialog-viewport-gap: var(--spacing-viewport-edge);--dialog-max-inline-size: var(--layout-dialog-max-inline-size);--dialog-action-min-block-size: var(--control-min-block-size);--dialog-focus-reserve: calc( var(--focus-ring-width-base) + var(--focus-ring-offset-base) + 1px );--dialog-motion-duration: var(--motion-duration-standard);--dialog-motion-easing: var(--motion-easing-standard);--dialog-layer: var(--layer-dialog);--menu-surface-background: var(--color-surface);--menu-surface-color: var(--color-text);--menu-border-color: var(--color-border);--menu-border-width: var(--border-width-default);--menu-shadow: var(--elevation-menu);--menu-radius: var(--shape-surface);--menu-padding: var(--spacing-menu);--menu-item-gap: var(--spacing-component-gap);--menu-item-padding-inline: var(--spacing-control-x);--menu-item-min-block-size: var(--control-min-block-size);--menu-item-hover-background: var(--color-interactive-hover);--menu-item-selected-background: var(--color-interactive-selected);--menu-min-inline-size: var(--layout-menu-min-inline-size);--menu-max-inline-size: var(--layout-menu-max-inline-size);--menu-motion-duration: var(--motion-duration-fast);--menu-motion-easing: var(--motion-easing-standard);--menu-layer: var(--layer-menu);--feedback-surface-background: var(--color-surface);--feedback-surface-color: var(--color-text);--feedback-muted-color: var(--color-text-muted);--feedback-border-color: var(--color-border);--feedback-border-width: var(--border-width-default);--feedback-radius: var(--shape-surface);--feedback-padding: var(--spacing-feedback);--feedback-gap: var(--spacing-component-gap);--feedback-action-min-block-size: var(--control-min-block-size);--feedback-info-background: var(--color-info-surface);--feedback-info-border: var(--color-info-border);--feedback-info-color: var(--color-info-text);--feedback-success-background: var(--color-success-surface);--feedback-success-border: var(--color-success-border);--feedback-success-color: var(--color-success-text);--feedback-warning-background: var(--color-warning-surface);--feedback-warning-border: var(--color-warning-border);--feedback-warning-color: var(--color-warning-text);--feedback-danger-background: var(--color-danger-surface);--feedback-danger-border: var(--color-danger-border);--feedback-danger-color: var(--color-danger-text);--feedback-motion-duration: var(--motion-duration-standard);--feedback-motion-easing: var(--motion-easing-standard);--feedback-layer: var(--layer-feedback)}@media(forced-colors:active){:root{--color-canvas: Canvas;--color-surface: Canvas;--color-surface-muted: Canvas;--color-border: CanvasText;--color-border-strong: CanvasText;--color-text: CanvasText;--color-text-muted: CanvasText;--color-primary: LinkText;--color-primary-hover: LinkText;--color-primary-surface: Canvas;--color-primary-border: LinkText;--color-primary-text: LinkText;--color-on-primary: Canvas;--color-info-surface: Canvas;--color-info-border: Highlight;--color-info-text: CanvasText;--color-warning-surface: Canvas;--color-warning-border: CanvasText;--color-warning-text: CanvasText;--color-danger: CanvasText;--color-danger-surface: Canvas;--color-danger-border: CanvasText;--color-danger-text: CanvasText;--color-success: CanvasText;--color-success-surface: Canvas;--color-success-border: CanvasText;--color-success-text: CanvasText;--color-overlay: transparent;--color-focus-ring: Highlight;--color-focus-ring-contrast: Canvas;--color-interactive-hover: Highlight;--color-interactive-selected: Highlight;--elevation-control: none;--elevation-menu: none;--elevation-overlay: none}}@media(prefers-contrast:more){:root{--color-border: var(--color-border-strong);--color-text-muted: var(--color-text);--border-width-default: var(--primitive-border-width-strong);--focus-ring-width-base: var(--primitive-focus-ring-width-high-contrast)}}@media(prefers-reduced-motion:reduce){:root{--motion-duration-fast: 0ms;--motion-duration-standard: 0ms;--motion-duration-slow: 0ms;--motion-distance: 0px}}}:root{--marketing-navy: #082d59;--marketing-navy-deep: #041d3b;--marketing-cyan: #04b8dc;--marketing-teal: #24b9b1;--marketing-ink: #102a43}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}.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}.brand-lockup{display:inline-flex;min-width:0;align-items:center;gap:12px;color:var(--marketing-navy)}.brand-lockup-icon{display:block;width:58px;height:58px;flex:0 0 auto;object-fit:contain;filter:drop-shadow(0 6px 10px rgb(8 45 89 / 12%))}.brand-lockup-copy{display:flex;min-width:0;flex-direction:column;gap:1px;line-height:1}.brand-lockup-copy strong{font-size:17px;font-weight:800;letter-spacing:.035em;white-space:nowrap}.brand-lockup-copy span{font-size:14px;font-weight:700;letter-spacing:.13em}.brand-lockup.compact{gap:9px}.brand-lockup.compact .brand-lockup-icon{width:46px;height:46px;border-radius:13px}.brand-lockup.compact .brand-lockup-copy strong{font-size:15px}.brand-lockup.compact .brand-lockup-copy span{font-size:12px}.brand-lockup.inverse{color:#fff}.brand-lockup.inverse .brand-lockup-icon{padding:3px;border-radius:14px;background:#fffffff0;box-shadow:0 8px 20px #02182e33;filter:none}.public-loading{display:grid;min-height:100vh;min-height:100dvh;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:radial-gradient(circle at 50% 38%,rgb(4 184 220 / 12%),transparent 28%),#f7fbfc;color:var(--marketing-ink);font-family:var(--font-family-ui)}.public-loading-card{width:min(100%,520px);display:flex;align-items:center;flex-direction:column;gap:18px;text-align:center}.public-loading-card h1{max-width:26ch;margin:0;border-radius:8px;color:var(--marketing-ink);font-size:clamp(24px,5vw,34px);line-height:1.25}.public-loading-card .btn{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border:1px solid #07558d;border-radius:10px;background:#07558d;color:#fff;cursor:pointer;font:inherit;font-weight:750}.public-loading-card .btn:disabled{cursor:wait;opacity:.65}.public-loading-line{width:140px;height:3px;overflow:hidden;border-radius:99px;background:#d8eaf0}.public-loading-line:after{display:block;width:50%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--marketing-cyan),var(--marketing-teal));content:"";animation:public-loading-slide .9s ease-in-out infinite alternate}.auth-modal-loading-backdrop{position:fixed;z-index:var(--dialog-layer);top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:var(--dialog-overlay-background);color:var(--color-text);font-family:var(--font-family-ui)}.auth-modal-loading-card{width:min(100%,320px);min-height:132px;display:grid;place-items:center;align-content:center;gap:18px;padding:24px;border:var(--dialog-border-width) solid var(--dialog-border-color);border-radius:var(--dialog-radius);background:var(--dialog-surface-background);box-shadow:var(--dialog-shadow);text-align:center}@keyframes public-loading-slide{0%{transform:translate(0)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.public-loading-line:after{animation:none;transform:translate(50%)}}@media(forced-colors:active){.public-loading{background:Canvas;color:CanvasText;forced-color-adjust:auto}.public-loading-card .btn{border-color:ButtonText;background:ButtonFace;color:ButtonText}.public-loading-line{border:1px solid CanvasText;background:Canvas}.public-loading-line:after{background:Highlight}.auth-modal-loading-backdrop{background:transparent}.auth-modal-loading-card{border-color:CanvasText;background:Canvas;box-shadow:none;color:CanvasText}}:root{--focus-ring-color: var(--color-focus-ring);--focus-ring-contrast: var(--color-focus-ring-contrast);--focus-ring-width: var(--focus-ring-width-base);--focus-ring-offset: var(--focus-ring-offset-base)}.route-skip-link{position:fixed;z-index:var(--layer-skip-link);top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));min-height:44px;display:inline-flex;align-items:center;padding:9px 14px;border:2px solid var(--focus-ring-color);border-radius:9px;background:#fff;color:#0f3e73;font-weight:750;text-decoration:none;transform:translateY(calc(-100% - max(12px,env(safe-area-inset-top))))}.route-skip-link:focus-visible{transform:none}main[data-skip-focus-target=true]:focus-visible{outline-offset:calc(-1 * var(--focus-ring-width));box-shadow:inset 0 0 0 var(--focus-ring-offset) var(--focus-ring-contrast)}:where(:focus:not(:focus-visible)){outline:none}:where(:focus-visible:not(:disabled):not([aria-disabled=true])):not([data-managed-focus=true],[data-route-focus=true][tabindex="-1"],[data-route-focus-priority=true][tabindex="-1"],[data-route-focus-initial=true][tabindex="-1"],.blocklyContextMenu),:root[data-focus-modality=keyboard] :where([data-managed-focus=true],[data-route-focus=true][tabindex="-1"],[data-route-focus-priority=true][tabindex="-1"],[data-route-focus-initial=true][tabindex="-1"]):focus-visible:not(:disabled):not([aria-disabled=true]),:root[data-focus-modality=keyboard] .blocklyContextMenu:focus-visible:not(:disabled):not([aria-disabled=true]){outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);box-shadow:0 0 0 var(--focus-ring-offset) var(--focus-ring-contrast);scroll-margin:calc(var(--focus-ring-width) + var(--focus-ring-offset) + 2px)}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select,textarea):focus-visible:not(:disabled):not([aria-disabled=true]){outline-offset:calc(-1 * var(--focus-ring-width));box-shadow:inset 0 0 0 var(--focus-ring-offset) var(--focus-ring-contrast)}:where(:focus-visible:is(:disabled,[aria-disabled=true])){outline:none;box-shadow:none}:root:not([data-focus-modality=keyboard]) :where([data-managed-focus=true],[data-route-focus=true][tabindex="-1"],[data-route-focus-priority=true][tabindex="-1"],[data-route-focus-initial=true][tabindex="-1"]):focus-visible{outline:none!important}:where(h1,h2):is([data-route-focus=true],[data-route-focus-priority=true]){width:fit-content;max-width:100%;min-width:0;border-radius:6px;overflow-wrap:anywhere}@media(forced-colors:active){.route-skip-link{border-color:CanvasText;background:Canvas;color:LinkText}main[data-skip-focus-target=true]:focus-visible{outline-color:Highlight;box-shadow:none}:where(:focus-visible:not(:disabled):not([aria-disabled=true])):not([data-managed-focus=true],[data-route-focus=true][tabindex="-1"],[data-route-focus-priority=true][tabindex="-1"],[data-route-focus-initial=true][tabindex="-1"],.blocklyContextMenu),:root[data-focus-modality=keyboard] :where([data-managed-focus=true],[data-route-focus=true][tabindex="-1"],[data-route-focus-priority=true][tabindex="-1"],[data-route-focus-initial=true][tabindex="-1"]):focus-visible:not(:disabled):not([aria-disabled=true]),:root[data-focus-modality=keyboard] .blocklyContextMenu:focus-visible:not(:disabled):not([aria-disabled=true]){outline-color:Highlight;box-shadow:none;forced-color-adjust:auto}}.settings-page .settings-nav{padding-inline-start:max(calc(var(--focus-ring-width) + var(--focus-ring-offset)),env(safe-area-inset-left));padding-inline-end:max(calc(var(--focus-ring-width) + var(--focus-ring-offset)),env(safe-area-inset-right))}
