.app-footer[data-v-eb2ba1da]{flex-shrink:0;padding:16px 0;background:var(--neutral-bg);border-top:1px solid var(--neutral-border-light)}.footer-inner[data-v-eb2ba1da]{max-width:1280px;margin:0 auto;padding:0 32px;display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.footer-left[data-v-eb2ba1da],.footer-right[data-v-eb2ba1da]{font-size:var(--text-caption);color:var(--neutral-text-disabled);white-space:nowrap}.footer-divider[data-v-eb2ba1da]{color:var(--neutral-border-heavy);font-size:var(--text-caption);user-select:none}.footer-link[data-v-eb2ba1da]{color:var(--neutral-text-secondary);text-decoration:none;transition:color var(--duration-fast) var(--ease-out);position:relative}.footer-link[data-v-eb2ba1da]:after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:1px;background:var(--color-primary);transition:width var(--duration-fast) var(--ease-out)}.footer-link[data-v-eb2ba1da]:hover{color:var(--color-primary-dark)}.footer-link[data-v-eb2ba1da]:hover:after{width:100%}.beian-link[data-v-eb2ba1da]:hover{color:var(--color-primary)}@media (max-width: 480px){.footer-inner[data-v-eb2ba1da]{padding:0 16px;gap:6px}.footer-left[data-v-eb2ba1da],.footer-right[data-v-eb2ba1da]{font-size:11px}}.app-root{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1;display:flex;flex-direction:column;min-height:0}.app-main>*{flex:1;min-height:0}.fade-enter-active,.fade-leave-active{transition:opacity var(--duration-fast) var(--ease-out)}.fade-enter-from,.fade-leave-to{opacity:0}.scale-shrink-enter-active{transition:opacity var(--duration-fast) var(--ease-out)}.scale-shrink-leave-active{transition:all var(--duration-fast) var(--ease-out)}.scale-shrink-enter-from{opacity:0}.scale-shrink-leave-to{opacity:0;transform:scale(.98)}.expand-in-enter-active{transition:all var(--duration-fast) var(--ease-out)}.expand-in-leave-active{transition:opacity var(--duration-fast) var(--ease-out);opacity:0}.expand-in-enter-from{opacity:0;transform:scale(1.02)}.expand-in-leave-to{opacity:0;transform:scale(.98)}.slide-right-enter-active{transition:all var(--duration-normal) var(--ease-out)}.slide-right-leave-active{transition:opacity var(--duration-fast) var(--ease-out)}.slide-right-enter-from{opacity:0;transform:translate(40px)}.slide-right-leave-to{opacity:0}.landing[data-v-92844b9c]{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--neutral-bg);padding:var(--space-lg);box-sizing:border-box}.landing-bezel-outer[data-v-92844b9c]{width:100%;max-width:1200px;min-height:680px;border-radius:18px;background:var(--neutral-bg);padding:1.5px;box-shadow:var(--shadow-card)}.landing-bezel-inner[data-v-92844b9c]{width:100%;height:100%;min-height:677px;border-radius:16px;background:var(--neutral-card);overflow:hidden}.landing-content[data-v-92844b9c]{display:flex;width:100%;min-height:677px}.landing-left[data-v-92844b9c]{width:55%;display:flex;align-items:center;padding:var(--space-2xl) var(--space-xl) var(--space-2xl) var(--space-2xl);box-sizing:border-box}.landing-left-inner[data-v-92844b9c]{width:100%;max-width:460px}.landing-brand[data-v-92844b9c]{font-family:var(--font-sans);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-primary);letter-spacing:.06em;text-transform:uppercase;margin:0 0 var(--space-lg) 0;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.landing-brand.visible[data-v-92844b9c]{opacity:1;transform:translateY(0)}.landing-eyebrow[data-v-92844b9c]{font-family:var(--font-sans);font-size:14px;font-weight:700;color:var(--color-primary-dark);letter-spacing:.02em;margin:0 0 12px;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.landing-eyebrow.visible[data-v-92844b9c]{opacity:1;transform:translateY(0)}.landing-title[data-v-92844b9c]{font-family:var(--font-sans);font-size:52px;line-height:1.16;font-weight:var(--weight-bold);color:var(--neutral-text-main);margin:0 0 var(--space-md) 0;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.landing-title.visible[data-v-92844b9c]{opacity:1;transform:translateY(0)}.landing-subtitle[data-v-92844b9c]{font-family:var(--font-sans);font-size:var(--text-body-l);line-height:1.7;color:var(--neutral-text-secondary);margin:0 0 var(--space-xl) 0;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.landing-subtitle.visible[data-v-92844b9c]{opacity:1;transform:translateY(0)}.landing-actions[data-v-92844b9c]{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-2xl);opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.landing-actions.visible[data-v-92844b9c]{opacity:1;transform:translateY(0)}.landing-btn[data-v-92844b9c]{font-family:var(--font-sans);font-size:var(--text-body);font-weight:var(--weight-semibold);padding:10px 28px;border-radius:var(--radius-sm);cursor:pointer;transition:transform .2s var(--ease-out),background .2s var(--ease-out);border:none;outline:none}.landing-btn[data-v-92844b9c]:active{transform:scale(.97)}.landing-btn-primary[data-v-92844b9c]{background:var(--color-primary);color:#fff}.landing-btn-primary[data-v-92844b9c]:hover{background:var(--color-primary-dark)}.landing-btn-outline[data-v-92844b9c]{background:transparent;color:var(--neutral-text-main);border:1px solid var(--neutral-border-light)}.landing-btn-outline[data-v-92844b9c]:hover{background:var(--neutral-hover)}.landing-version[data-v-92844b9c]{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--neutral-text-disabled);margin:0;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.landing-version.visible[data-v-92844b9c]{opacity:1;transform:translateY(0)}.landing-right[data-v-92844b9c]{width:45%;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:0;transition:opacity .8s var(--ease-out)}.landing-right.visible[data-v-92844b9c]{opacity:1}.landing-decor-ring[data-v-92844b9c]{position:absolute;border-radius:50%;border:1px solid var(--color-primary-200);pointer-events:none}.landing-decor-ring-1[data-v-92844b9c]{width:320px;height:320px;opacity:.3}.landing-decor-ring-2[data-v-92844b9c]{width:240px;height:240px;opacity:.45}.landing-decor-ring-3[data-v-92844b9c]{width:160px;height:160px;opacity:.6}.landing-decor-blob[data-v-92844b9c]{position:absolute;border-radius:50%;pointer-events:none;backdrop-filter:blur(40px)}.landing-decor-blob-1[data-v-92844b9c]{width:200px;height:200px;background:var(--color-primary-100);top:18%;right:8%;opacity:.55}.landing-decor-blob-2[data-v-92844b9c]{width:140px;height:140px;background:var(--color-primary-50);bottom:22%;left:6%;opacity:.7}@media (max-width: 860px){.landing[data-v-92844b9c]{padding:var(--space-md)}.landing-content[data-v-92844b9c]{flex-direction:column}.landing-left[data-v-92844b9c]{width:100%;padding:var(--space-xl)}.landing-left-inner[data-v-92844b9c]{max-width:none}.landing-title[data-v-92844b9c]{font-size:36px}.landing-right[data-v-92844b9c]{width:100%;min-height:220px}.landing-decor-ring-1[data-v-92844b9c]{width:220px;height:220px}.landing-decor-ring-2[data-v-92844b9c]{width:160px;height:160px}.landing-decor-ring-3[data-v-92844b9c]{width:100px;height:100px}.landing-decor-blob-1[data-v-92844b9c]{width:130px;height:130px}.landing-decor-blob-2[data-v-92844b9c]{width:90px;height:90px}}@media (max-width: 480px){.landing-left[data-v-92844b9c]{padding:var(--space-lg)}.landing-title[data-v-92844b9c]{font-size:28px}.landing-actions[data-v-92844b9c]{flex-direction:column;align-items:stretch}.landing-btn[data-v-92844b9c]{text-align:center}.landing-right[data-v-92844b9c]{min-height:180px}}.login-page[data-v-e1180b23]{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--neutral-bg);padding:var(--space-lg);box-sizing:border-box}.login-bezel-outer[data-v-e1180b23]{width:100%;max-width:960px;min-height:600px;border-radius:18px;background:var(--neutral-bg);padding:1.5px;box-shadow:var(--shadow-card)}.login-bezel-inner[data-v-e1180b23]{width:100%;height:100%;min-height:597px;border-radius:16px;background:var(--neutral-card);overflow:hidden}.login-card[data-v-e1180b23]{display:flex;width:100%;min-height:597px}.login-left[data-v-e1180b23]{width:55%;display:flex;align-items:center;padding:var(--space-2xl) var(--space-xl) var(--space-2xl) var(--space-2xl);box-sizing:border-box}.login-left-inner[data-v-e1180b23]{width:100%;max-width:400px}.login-brand[data-v-e1180b23]{font-family:var(--font-sans);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--color-primary);letter-spacing:.06em;text-transform:uppercase;margin:0 0 var(--space-lg) 0;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.login-brand.visible[data-v-e1180b23]{opacity:1;transform:translateY(0)}.login-title[data-v-e1180b23]{font-family:var(--font-sans);font-size:42px;line-height:1.16;font-weight:var(--weight-bold);color:var(--neutral-text-main);margin:0 0 var(--space-sm) 0;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.login-title.visible[data-v-e1180b23]{opacity:1;transform:translateY(0)}.login-subtitle[data-v-e1180b23]{font-family:var(--font-sans);font-size:var(--text-body);line-height:1.7;color:var(--neutral-text-secondary);margin:0 0 var(--space-xl) 0;opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.login-subtitle.visible[data-v-e1180b23]{opacity:1;transform:translateY(0)}.login-form[data-v-e1180b23]{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.login-form.visible[data-v-e1180b23]{opacity:1;transform:translateY(0)}.form-group[data-v-e1180b23]{margin-bottom:var(--space-md)}.form-label[data-v-e1180b23]{display:block;font-family:var(--font-sans);font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--neutral-text-secondary);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.04em}.form-input[data-v-e1180b23]{width:100%;padding:10px 14px;font-family:var(--font-sans);font-size:var(--text-body);color:var(--neutral-text-main);background:var(--neutral-bg);border:1px solid var(--neutral-border-light);border-radius:var(--radius-sm);outline:none;transition:border-color .2s var(--ease-out),box-shadow .2s var(--ease-out)}.form-input[data-v-e1180b23]:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-100)}.form-input.input-error[data-v-e1180b23]{border-color:var(--state-error)}.form-input.input-error[data-v-e1180b23]:focus{box-shadow:0 0 0 3px var(--state-error-light)}.login-error[data-v-e1180b23]{font-family:var(--font-sans);font-size:var(--text-caption);color:var(--state-error);margin:var(--space-sm) 0}.login-btn[data-v-e1180b23]{width:100%;font-family:var(--font-sans);font-size:var(--text-body);font-weight:var(--weight-semibold);padding:11px 28px;border-radius:var(--radius-sm);cursor:pointer;transition:transform .2s var(--ease-out),background .2s var(--ease-out);border:none;outline:none;margin-top:var(--space-sm)}.login-btn[data-v-e1180b23]:active{transform:scale(.97)}.login-btn[data-v-e1180b23]:disabled{opacity:.6;cursor:not-allowed}.login-btn-primary[data-v-e1180b23]{background:var(--color-primary);color:#fff}.login-btn-primary[data-v-e1180b23]:hover:not(:disabled){background:var(--color-primary-dark)}.btn-loading[data-v-e1180b23]{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-e1180b23 .6s linear infinite}@keyframes spin-e1180b23{to{transform:rotate(360deg)}}.login-hint[data-v-e1180b23]{font-family:var(--font-sans);font-size:var(--text-caption);color:var(--neutral-text-disabled);margin:var(--space-lg) 0 0 0;opacity:0;transform:translateY(10px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.login-hint.visible[data-v-e1180b23]{opacity:1;transform:translateY(0)}.login-manual[data-v-e1180b23]{margin-top:14px;opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.login-manual.visible[data-v-e1180b23]{opacity:1;transform:translateY(0)}.login-manual-btn[data-v-e1180b23]{width:100%;height:40px;border:1px solid var(--color-primary-200);border-radius:var(--radius-sm);background:var(--color-primary-50);color:var(--color-primary-dark);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.login-manual-btn[data-v-e1180b23]:hover{background:var(--color-primary-100)}.login-right[data-v-e1180b23]{width:45%;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:0;transition:opacity .8s var(--ease-out)}.login-right.visible[data-v-e1180b23]{opacity:1}.login-decor-ring[data-v-e1180b23]{position:absolute;border-radius:50%;border:1px solid var(--color-primary-200);pointer-events:none}.login-decor-ring-1[data-v-e1180b23]{width:280px;height:280px;opacity:.3}.login-decor-ring-2[data-v-e1180b23]{width:200px;height:200px;opacity:.45}.login-decor-ring-3[data-v-e1180b23]{width:130px;height:130px;opacity:.6}.login-decor-blob[data-v-e1180b23]{position:absolute;border-radius:50%;pointer-events:none;backdrop-filter:blur(40px)}.login-decor-blob-1[data-v-e1180b23]{width:180px;height:180px;background:var(--color-primary-100);top:20%;right:10%;opacity:.55}.login-decor-blob-2[data-v-e1180b23]{width:120px;height:120px;background:var(--color-primary-50);bottom:25%;left:8%;opacity:.7}@media (max-width: 860px){.login-page[data-v-e1180b23]{padding:var(--space-md)}.login-card[data-v-e1180b23]{flex-direction:column}.login-left[data-v-e1180b23]{width:100%;padding:var(--space-xl)}.login-left-inner[data-v-e1180b23]{max-width:none}.login-title[data-v-e1180b23]{font-size:32px}.login-right[data-v-e1180b23]{width:100%;min-height:180px}.login-decor-ring-1[data-v-e1180b23]{width:200px;height:200px}.login-decor-ring-2[data-v-e1180b23]{width:150px;height:150px}.login-decor-ring-3[data-v-e1180b23]{width:100px;height:100px}.login-decor-blob-1[data-v-e1180b23]{width:130px;height:130px}.login-decor-blob-2[data-v-e1180b23]{width:90px;height:90px}}@media (max-width: 480px){.login-left[data-v-e1180b23]{padding:var(--space-lg)}.login-title[data-v-e1180b23]{font-size:26px}.login-right[data-v-e1180b23]{min-height:140px}}.top-nav[data-v-71e8751a]{position:relative;z-index:10;background:var(--neutral-card);border-bottom:1px solid var(--neutral-border-light)}.compact[data-v-71e8751a]{height:56px}.nav-inner[data-v-71e8751a]{position:relative;max-width:1280px;margin:0 auto;padding:0 32px;height:64px;display:flex;align-items:center;justify-content:space-between}.nav-demo-state[data-v-71e8751a]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:3px 12px;border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary-dark);font-size:var(--text-caption);font-weight:var(--weight-bold);white-space:nowrap;z-index:2;pointer-events:none}.compact .nav-inner[data-v-71e8751a]{height:52px}.nav-left[data-v-71e8751a]{display:flex;align-items:center;gap:12px}.nav-logo[data-v-71e8751a]{font-size:var(--text-h2);font-weight:var(--weight-bold);color:var(--neutral-text-main);letter-spacing:-.01em}.nav-title[data-v-71e8751a]{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--neutral-text-main);letter-spacing:.02em}.back-btn[data-v-71e8751a]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--neutral-text-secondary);transition:background var(--duration-fast) var(--ease-out)}.back-btn[data-v-71e8751a]:hover{background:var(--neutral-hover)}.nav-right[data-v-71e8751a]{display:flex;align-items:center;gap:16px}.student-name[data-v-71e8751a]{font-size:var(--text-body-l);color:var(--neutral-text-main);white-space:nowrap}.level-switcher[data-v-71e8751a]{display:flex;align-items:center;gap:8px}.level-pill[data-v-71e8751a]{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-semibold);background:var(--neutral-hover);color:var(--neutral-text-secondary);white-space:nowrap;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.level-pill.active[data-v-71e8751a]{background:var(--color-primary-light);color:var(--color-primary-dark)}.level-pill[data-v-71e8751a]:hover:not(.active){background:var(--neutral-border-light)}.logout-btn[data-v-71e8751a]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--neutral-text-secondary);transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.logout-btn[data-v-71e8751a]:hover{background:var(--state-error-light);color:var(--state-error)}@media (max-width: 768px){.nav-inner[data-v-71e8751a]{padding:0 16px}.nav-demo-state[data-v-71e8751a]{font-size:11px;padding:2px 8px}.nav-right[data-v-71e8751a]{gap:8px}.level-switcher[data-v-71e8751a]{gap:4px}.level-pill[data-v-71e8751a]{font-size:11px;padding:2px 8px}}@media (max-width: 480px){.student-name[data-v-71e8751a]{display:none}}.toast-bar[data-v-71e8751a]{position:absolute;bottom:-80px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;max-width:520px;padding:20px 24px 16px;background:var(--color-primary-light);color:var(--color-primary-dark);border-radius:var(--radius-md);font-size:var(--text-body);font-weight:var(--weight-medium);line-height:1.6;text-align:center;box-shadow:0 4px 16px #0000001a;white-space:normal;z-index:20;pointer-events:none}.toast-avatar[data-v-71e8751a]{width:40px;height:40px;border-radius:var(--radius-full);border:2px solid #fff;object-fit:cover;flex-shrink:0}.toast-text[data-v-71e8751a]{padding:0 4px}.toast-enter-active[data-v-71e8751a]{transition:all .35s var(--ease-out)}.toast-leave-active[data-v-71e8751a]{transition:all .3s var(--ease-out)}.toast-enter-from[data-v-71e8751a]{opacity:0;transform:translate(-50%) translateY(8px) scale(.96)}.toast-leave-to[data-v-71e8751a]{opacity:0;transform:translate(-50%) translateY(-4px) scale(.96)}.radar-container[data-v-09590477]{position:relative;display:inline-flex}.radar-animate[data-v-09590477]{animation:radar-expand-09590477 var(--duration-radar) var(--ease-out) both;transform-origin:center center}@keyframes radar-expand-09590477{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.radar-animate[data-v-09590477]{animation:none;opacity:1;transform:none}}.skill-card[data-v-3a6fbc3d]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-card);transition:all var(--duration-fast) var(--ease-out);cursor:pointer}.skill-card[data-v-3a6fbc3d]:not(.disabled):hover{box-shadow:var(--shadow-card-hover);transform:translateY(-4px)}.skill-card.disabled[data-v-3a6fbc3d]{opacity:.7;cursor:default}.card-tag[data-v-3a6fbc3d]{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-semibold);margin-bottom:12px}.disabled .card-tag[data-v-3a6fbc3d]{background:var(--neutral-hover);color:var(--neutral-text-disabled)}.skill-card:not(.disabled) .card-tag[data-v-3a6fbc3d]{background:var(--state-success-light);color:var(--state-success-dark)}.card-title[data-v-3a6fbc3d]{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:8px}.card-desc[data-v-3a6fbc3d]{font-size:var(--text-body);color:var(--neutral-text-secondary);line-height:1.5;margin-bottom:16px}.card-btn[data-v-3a6fbc3d]{display:inline-flex;align-items:center;justify-content:center;width:100%;height:40px;padding:0 20px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.card-btn[data-v-3a6fbc3d]:not(.btn-disabled):hover{background:var(--color-primary-dark)}.card-btn[data-v-3a6fbc3d]:not(.btn-disabled):active{transform:scale(.97)}.btn-disabled[data-v-3a6fbc3d]{background:none;border:1px solid var(--color-primary);color:var(--color-primary);opacity:.6;cursor:not-allowed}.guidance-bar[data-v-3a7ad29e]{background:var(--color-primary-100);border-radius:var(--radius-sm);padding:12px 20px;display:flex;align-items:flex-start;gap:8px;font-size:var(--text-body);color:var(--neutral-text-main)}.bulb-icon[data-v-3a7ad29e]{flex-shrink:0;margin-top:1px;color:var(--color-primary-dark)}.g-text[data-v-3a7ad29e]{flex:1;line-height:1.6}.demo-modal-overlay[data-v-36a62ba0]{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000073;backdrop-filter:blur(1px)}.demo-modal-card[data-v-36a62ba0]{width:420px;max-width:100%;background:var(--neutral-card);border-radius:var(--radius-md);padding:32px;box-shadow:var(--shadow-modal);text-align:center}.demo-modal-icon[data-v-36a62ba0]{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 16px;border-radius:var(--radius-full);background:var(--state-success-light);color:var(--state-success)}.demo-modal-icon-amber[data-v-36a62ba0]{background:var(--color-primary-light);color:var(--color-primary-dark)}.demo-modal-title[data-v-36a62ba0]{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:8px}.demo-sim-badge[data-v-36a62ba0]{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary-dark);font-size:var(--text-caption);font-weight:var(--weight-bold);vertical-align:3px}.demo-modal-notice[data-v-36a62ba0]{margin-top:8px}.demo-modal-highlight[data-v-36a62ba0]{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--neutral-text-main)}.demo-modal-line[data-v-36a62ba0]{margin-top:6px;color:var(--neutral-text-secondary);line-height:1.7}.demo-modal-actions[data-v-36a62ba0]{display:flex;gap:12px;justify-content:center;margin-top:24px}.demo-modal-actions--single .demo-modal-btn[data-v-36a62ba0]{width:100%}.demo-modal-btn[data-v-36a62ba0]{height:38px;padding:0 18px;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.demo-modal-btn.primary[data-v-36a62ba0]{background:var(--color-primary);color:#fff;border:none}.demo-modal-btn.primary[data-v-36a62ba0]:hover{background:var(--color-primary-dark)}.demo-modal-btn.secondary[data-v-36a62ba0]{background:#fff;color:var(--color-primary);border:1px solid var(--color-primary)}.demo-modal-btn.secondary[data-v-36a62ba0]:hover{background:var(--color-primary-light)}.demo-modal-enter-active[data-v-36a62ba0],.demo-modal-leave-active[data-v-36a62ba0]{transition:opacity .24s ease,transform .2s ease}.demo-modal-enter-from[data-v-36a62ba0],.demo-modal-leave-to[data-v-36a62ba0]{opacity:0;transform:scale(.95)}@media (max-width: 480px){.demo-modal-card[data-v-36a62ba0]{padding:24px 20px}.demo-modal-actions[data-v-36a62ba0]{flex-direction:column-reverse}.demo-modal-btn[data-v-36a62ba0]{width:100%}}.dashboard[data-v-e09caff0]{background:var(--neutral-bg);position:relative;overflow:hidden}.decor-strip[data-v-e09caff0]{position:absolute;top:0;left:0;right:0;height:320px;background:var(--gradient-decor);pointer-events:none}.dash-main[data-v-e09caff0]{position:relative;max-width:1280px;margin:0 auto;padding:32px}.dash-grid[data-v-e09caff0]{display:grid;grid-template-columns:7fr 5fr;gap:24px}.dash-left[data-v-e09caff0]{display:flex;flex-direction:column;gap:24px}.dash-right[data-v-e09caff0]{display:flex;flex-direction:column;gap:16px}.section-card[data-v-e09caff0]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-card)}.section-title[data-v-e09caff0]{font-size:var(--text-h2);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:24px}.radar-wrap[data-v-e09caff0]{text-align:center;margin-bottom:12px}.dimension-labels[data-v-e09caff0]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 8px;max-width:320px;margin:0 auto;text-align:center}.dim-label[data-v-e09caff0]{font-size:var(--text-caption);color:var(--neutral-text-secondary);position:relative;cursor:default}.dim-label.warning[data-v-e09caff0]{color:var(--state-warning);cursor:help}.dim-tooltip[data-v-e09caff0]{display:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:4px;white-space:nowrap;background:#fff;border:1px solid var(--neutral-border-light);border-radius:var(--radius-sm);padding:6px 12px;font-size:var(--text-caption);color:var(--neutral-text-main);box-shadow:var(--shadow-card);z-index:10;pointer-events:none}.dim-label.warning:hover .dim-tooltip[data-v-e09caff0]{display:block}.weak-section[data-v-e09caff0]{margin-top:20px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.weak-label[data-v-e09caff0]{font-size:var(--text-body);color:var(--state-warning);white-space:nowrap}.weak-tag[data-v-e09caff0]{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-semibold);background:var(--state-warning-light);color:var(--state-warning);white-space:nowrap;position:relative;cursor:help}.weak-tag:hover .dim-tooltip[data-v-e09caff0]{display:block}.reset-btn[data-v-e09caff0]{margin-left:auto;padding:2px 10px;border-radius:var(--radius-full);border:1px solid var(--neutral-border-light);background:var(--neutral-hover);color:var(--neutral-text-tertiary);font-size:var(--text-caption);font-weight:var(--weight-regular);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap}.reset-btn[data-v-e09caff0]:hover{background:var(--neutral-border-light);color:var(--neutral-text-secondary)}.reset-btn[data-v-e09caff0]:active{transform:scale(.96)}.summary-card .section-title[data-v-e09caff0]{margin-bottom:4px}.summary-subtitle[data-v-e09caff0]{font-size:var(--text-body);color:var(--neutral-text-secondary);margin-bottom:20px}.summary-divider[data-v-e09caff0]{font-size:var(--text-caption);font-weight:var(--weight-semibold);color:var(--neutral-text-tertiary);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--neutral-border-light)}.summary-skills[data-v-e09caff0]{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.summary-skill-row[data-v-e09caff0]{display:flex;align-items:center;gap:8px;font-size:var(--text-body)}.summary-skill-label[data-v-e09caff0]{color:var(--neutral-text-main);font-weight:var(--weight-medium);min-width:56px}.summary-skill-score[data-v-e09caff0]{color:var(--neutral-text-secondary)}.summary-skill-arrow[data-v-e09caff0]{color:var(--neutral-text-tertiary)}.summary-skill-score.improved[data-v-e09caff0]{color:var(--state-success-dark);font-weight:var(--weight-semibold)}.summary-skill-up[data-v-e09caff0]{color:var(--state-success-dark);font-weight:var(--weight-bold)}.offline-banner[data-v-e09caff0]{margin-bottom:16px;padding:10px 14px;border-radius:var(--radius-sm);background:#fef3c7;color:#92400e;font-size:var(--text-body)}.summary-empty[data-v-e09caff0]{text-align:center;padding:18px 8px 6px}.summary-empty-title[data-v-e09caff0]{font-size:var(--text-body-l);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:6px}.summary-empty-desc[data-v-e09caff0]{font-size:var(--text-body);color:var(--neutral-text-secondary);line-height:1.6;margin-bottom:16px}.summary-empty .card-btn[data-v-e09caff0]{max-width:240px}.card-btn[data-v-e09caff0]{display:inline-flex;align-items:center;justify-content:center;width:100%;height:40px;padding:0 20px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.card-btn[data-v-e09caff0]:hover{background:var(--color-primary-dark)}.card-btn[data-v-e09caff0]:active{transform:scale(.97)}.stagger-card[data-v-e09caff0]{animation:slideInRight-e09caff0 var(--duration-normal) var(--ease-out) both}@keyframes slideInRight-e09caff0{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 1024px){.dash-grid[data-v-e09caff0]{grid-template-columns:1fr}.dash-main[data-v-e09caff0]{padding:24px 16px}}@media (max-width: 640px){.dash-main[data-v-e09caff0]{padding:16px 12px}.section-card[data-v-e09caff0]{padding:16px}}.mate-bubble[data-v-e6ca9211]{position:relative;margin-top:12px;padding:20px 16px 12px;background:var(--neutral-card);border-left:3px solid;border-radius:var(--radius-sm);box-shadow:var(--shadow-bubble);animation:bubbleSlide-e6ca9211 var(--duration-slow) var(--ease-out) both}.mate-bubble-avatar[data-v-e6ca9211]{position:absolute;top:-12px;left:-12px;width:24px;height:24px;border-radius:var(--radius-full);border:2px solid var(--neutral-card);object-fit:cover}.bubble-header[data-v-e6ca9211]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.level-badge[data-v-e6ca9211]{width:18px;height:18px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:var(--weight-bold);color:#fff;flex-shrink:0}.bubble-level-name[data-v-e6ca9211]{font-size:var(--text-caption);font-weight:var(--weight-semibold)}.bubble-trigger[data-v-e6ca9211]{margin:0 0 8px;padding:6px 8px;background:#fff7ed;border-radius:6px;font-size:12px;color:#9a3412;line-height:1.5}.bubble-trigger span[data-v-e6ca9211]{margin-right:6px;font-weight:var(--weight-semibold);color:#c2410c}.bubble-time[data-v-e6ca9211]{font-size:var(--text-caption);color:var(--neutral-text-disabled);margin-left:auto}.bubble-content[data-v-e6ca9211]{font-size:var(--text-body);color:var(--neutral-text-main);line-height:1.65}@keyframes bubbleSlide-e6ca9211{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}@media (prefers-reduced-motion: reduce){.mate-bubble[data-v-e6ca9211]{animation:none}}.mate-panel[data-v-68875013]{display:flex;flex-direction:column;height:auto;min-height:0;align-self:stretch;background:var(--neutral-card);border-right:1px solid var(--neutral-border-light);overflow:hidden;flex-shrink:0}.mate-header[data-v-68875013]{display:flex;flex-direction:column;align-items:center;padding:32px 24px 16px}.mate-avatar-wrapper[data-v-68875013]{position:relative}.mate-avatar[data-v-68875013]{width:48px;height:48px;border-radius:var(--radius-full);border:2px solid var(--color-primary-200);object-fit:cover;transition:transform var(--duration-normal) var(--ease-out)}.avatar-breathing[data-v-68875013]{animation:breathe-68875013 3s ease-in-out infinite}.online-dot[data-v-68875013]{position:absolute;bottom:2px;right:2px;width:12px;height:12px;border-radius:var(--radius-full);background:var(--state-success);border:2px solid var(--neutral-card)}.mate-status[data-v-68875013]{margin-top:12px;font-size:var(--text-body);color:var(--neutral-text-secondary)}.mate-divider[data-v-68875013]{margin:0 16px;border-top:1px solid var(--neutral-border-light)}.ask-guide-tip[data-v-68875013]{margin:10px 16px 0;padding:8px 10px;border-radius:var(--radius-sm);background:var(--color-primary-50);color:var(--color-primary-dark);font-size:var(--text-caption);line-height:1.5}.hint-area[data-v-68875013]{flex:1;padding:16px;overflow-y:auto}.hint-area[data-v-68875013]::-webkit-scrollbar{width:4px}.hint-area[data-v-68875013]::-webkit-scrollbar-thumb{background:var(--neutral-border-light);border-radius:2px}.hint-title[data-v-68875013]{font-size:16px;font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:12px}.hint-placeholder[data-v-68875013]{font-size:var(--text-body);color:var(--neutral-text-disabled);text-align:center;padding:32px 8px}.stream-bubble[data-v-68875013]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-sm);padding:12px 16px;font-size:var(--text-body);color:var(--neutral-text-main);line-height:1.65;position:relative}.stream-cursor[data-v-68875013]{display:inline-block;width:2px;height:16px;background:var(--color-primary);vertical-align:text-bottom;margin-right:2px;animation:blink-68875013 .53s steps(1) infinite}.stream-trigger[data-v-68875013]{margin:0 0 8px;padding:6px 8px;background:#fff7ed;border-radius:6px;font-size:12px;color:#9a3412;line-height:1.5}.stream-trigger span[data-v-68875013]{margin-right:6px;font-weight:var(--weight-semibold);color:#c2410c}.mate-error[data-v-68875013]{text-align:center;padding:24px 8px}.error-msg[data-v-68875013]{font-size:var(--text-body);color:var(--state-error);margin-bottom:8px}.retry-link[data-v-68875013]{font-size:var(--text-body);color:var(--state-info);cursor:pointer;text-decoration:underline}.mate-actions[data-v-68875013]{padding:12px 16px 20px;flex-shrink:0}.mate-ask[data-v-68875013]{padding:12px 16px 16px;border-top:1px solid var(--neutral-border-light);flex-shrink:0}.ask-guide[data-v-68875013]{margin-bottom:10px}.ask-guide-text[data-v-68875013]{font-size:var(--text-caption);color:var(--neutral-text-secondary);line-height:1.6;margin-bottom:8px}.ask-chips[data-v-68875013]{display:flex;flex-wrap:wrap;gap:6px}.ask-chip[data-v-68875013]{padding:4px 10px;border:1px solid var(--color-primary-200);border-radius:var(--radius-full);background:var(--color-primary-50);color:var(--color-primary-dark);font-size:var(--text-caption);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.ask-chip[data-v-68875013]:hover:not(:disabled){background:var(--color-primary-100)}.ask-chip[data-v-68875013]:disabled{cursor:not-allowed;opacity:.6}.ask-messages[data-v-68875013]{max-height:220px;overflow-y:auto;margin-bottom:10px;display:flex;flex-direction:column;gap:8px}.ask-msg[data-v-68875013]{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:var(--radius-sm);font-size:var(--text-caption);line-height:1.6}.ask-msg-user[data-v-68875013]{align-self:flex-end;max-width:92%;background:var(--neutral-hover);color:var(--neutral-text-main)}.ask-msg-mate[data-v-68875013]{align-self:flex-start;max-width:92%;background:var(--color-primary-50);color:var(--neutral-text-main)}.ask-mate-tag[data-v-68875013]{color:var(--color-primary-dark);font-weight:var(--weight-semibold)}.ask-msg-text[data-v-68875013]{margin:0;white-space:pre-wrap;word-break:break-word}.ask-source[data-v-68875013]{color:var(--neutral-text-tertiary);font-size:11px}.ask-retry[data-v-68875013]{align-self:flex-start;padding:2px 8px;border:1px solid var(--color-primary-200);border-radius:var(--radius-full);background:#fff;color:var(--color-primary-dark);font-size:var(--text-caption);cursor:pointer}.ask-retry[data-v-68875013]:disabled{cursor:not-allowed;opacity:.6}.ask-row[data-v-68875013]{display:flex;gap:8px;align-items:flex-end}.ask-input[data-v-68875013]{flex:1;min-width:0;min-height:34px;max-height:80px;padding:7px 10px;border:1px solid var(--neutral-border-light);border-radius:var(--radius-sm);background:#fff;color:var(--neutral-text-main);font-size:var(--text-caption);line-height:1.4;resize:none}.ask-input[data-v-68875013]:focus{outline:none;border-color:var(--color-primary)}.ask-btn[data-v-68875013]{flex-shrink:0;height:34px;padding:0 12px;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:var(--text-caption);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.ask-btn[data-v-68875013]:disabled{cursor:not-allowed;opacity:.6}.hint-btn[data-v-68875013]{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;height:40px;padding:0 20px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.hint-btn[data-v-68875013]:hover{background:var(--color-primary-dark)}.hint-btn[data-v-68875013]:active{transform:scale(.97)}.hint-btn[data-v-68875013]:disabled{cursor:not-allowed;opacity:.85}.hint-btn--loading[data-v-68875013]{background:var(--color-primary-dark)}.btn-spinner[data-v-68875013]{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin-68875013 .8s linear infinite}.hint-list-enter-active[data-v-68875013]{transition:all var(--duration-slow) var(--ease-out)}.hint-list-leave-active[data-v-68875013]{transition:all var(--duration-fast) var(--ease-out)}.hint-list-enter-from[data-v-68875013]{opacity:0;transform:translateY(16px)}.hint-list-leave-to[data-v-68875013]{opacity:0}@keyframes breathe-68875013{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}@keyframes blink-68875013{0%,to{opacity:1}50%{opacity:0}}@keyframes spin-68875013{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.avatar-breathing[data-v-68875013]{animation:none}.stream-cursor[data-v-68875013]{animation:none;opacity:1}.btn-spinner[data-v-68875013]{animation:none;border-top-color:#ffffff4d}}@media (max-width: 768px){.mate-header[data-v-68875013]{padding:20px 16px 12px}}.behavior-signal-bar[data-v-dabfebce]{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:38px;padding:8px 16px;background:#fffbf0;border-bottom:1px solid #F1E7CF;flex-wrap:wrap}.signal-state-block[data-v-dabfebce]{display:inline-flex;align-items:center;gap:8px;min-width:0}.signal-dot[data-v-dabfebce]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.signal-dot.state-observing[data-v-dabfebce]{background:#10b981}.signal-dot.state-thinking[data-v-dabfebce]{background:#f59e0b;animation:signalPulse-dabfebce 1.2s ease-in-out infinite}.signal-dot.state-recognized[data-v-dabfebce]{background:#ef4444;animation:signalPulse-dabfebce .8s ease-in-out infinite}.signal-label[data-v-dabfebce]{font-size:13px;font-weight:var(--weight-semibold);color:#44403c;white-space:nowrap}.signal-state[data-v-dabfebce]{font-size:12px;color:#78716c;white-space:nowrap}.signal-metrics[data-v-dabfebce]{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}.signal-metric[data-v-dabfebce]{display:inline-flex;align-items:baseline;gap:4px;font-size:12px;color:#78716c;white-space:nowrap}.metric-value[data-v-dabfebce]{min-width:18px;font-family:var(--font-mono);font-size:13px;font-weight:var(--weight-semibold);color:#44403c;text-align:center}.metric-alert .metric-value[data-v-dabfebce]{color:#dc2626}@keyframes signalPulse-dabfebce{0%,to{opacity:1}50%{opacity:.35}}@media (max-width: 768px){.behavior-signal-bar[data-v-dabfebce]{justify-content:flex-start}.signal-metrics[data-v-dabfebce]{gap:10px}}.mate-ask-float[data-v-c073be33]{position:fixed;right:24px;bottom:24px;z-index:80;transition:right .25s var(--ease-out),bottom .25s var(--ease-out)}.ask-mini[data-v-c073be33]{display:flex;align-items:center;gap:12px;width:320px;min-height:80px;padding:12px 16px;border:none;border-radius:var(--radius-sm);background:var(--neutral-card);border:1px solid var(--neutral-border-light);box-shadow:0 4px 14px #0000001f;cursor:pointer;text-align:left;color:var(--neutral-text-main)}.ask-mini-avatar[data-v-c073be33]{width:40px;height:40px;border-radius:var(--radius-full);object-fit:cover;flex-shrink:0}.ask-mini-copy[data-v-c073be33]{flex:1;min-width:0;display:flex;flex-direction:column}.ask-mini-copy strong[data-v-c073be33]{font-size:var(--text-body);font-weight:var(--weight-semibold)}.ask-mini-copy small[data-v-c073be33]{font-size:var(--text-caption);color:var(--neutral-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ask-mini>svg[data-v-c073be33]{color:var(--color-primary);flex-shrink:0}.ask-card[data-v-c073be33]{width:340px;max-height:60vh;display:flex;flex-direction:column;background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-modal);overflow:hidden}.ask-header[data-v-c073be33]{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--neutral-border-light)}.ask-avatar[data-v-c073be33]{width:32px;height:32px;border-radius:var(--radius-full);object-fit:cover}.ask-header-text[data-v-c073be33]{flex:1;min-width:0;display:flex;flex-direction:column}.ask-header-text strong[data-v-c073be33]{font-size:var(--text-body);color:var(--neutral-text-main)}.ask-header-text span[data-v-c073be33]{font-size:var(--text-caption);color:var(--neutral-text-secondary)}.ask-close[data-v-c073be33]{width:28px;height:28px;border:none;border-radius:var(--radius-full);background:var(--neutral-hover);color:var(--neutral-text-secondary);font-size:16px;cursor:pointer}.ask-guide[data-v-c073be33]{padding:14px}.ask-guide p[data-v-c073be33]{margin:0 0 10px;font-size:var(--text-caption);color:var(--neutral-text-secondary);line-height:1.6}.ask-chips[data-v-c073be33]{display:flex;flex-wrap:wrap;gap:6px}.ask-chip[data-v-c073be33]{padding:4px 10px;border:1px solid var(--color-primary-200);border-radius:var(--radius-full);background:var(--color-primary-50);color:var(--color-primary-dark);font-size:var(--text-caption);cursor:pointer}.ask-chip[data-v-c073be33]:disabled{cursor:not-allowed;opacity:.6}.ask-messages[data-v-c073be33]{flex:1;min-height:120px;max-height:calc(60vh - 150px);overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.ask-msg[data-v-c073be33]{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:var(--radius-sm);font-size:var(--text-caption);line-height:1.6}.ask-msg-user[data-v-c073be33]{align-self:flex-end;max-width:92%;background:var(--neutral-hover);color:var(--neutral-text-main)}.ask-msg-mate[data-v-c073be33]{align-self:flex-start;max-width:92%;background:var(--color-primary-50);color:var(--neutral-text-main)}.ask-mate-tag[data-v-c073be33]{color:var(--color-primary-dark);font-weight:var(--weight-semibold)}.ask-msg-text[data-v-c073be33]{margin:0;white-space:pre-wrap;word-break:break-word}.ask-source[data-v-c073be33]{color:var(--neutral-text-tertiary);font-size:11px}.ask-retry[data-v-c073be33]{align-self:flex-start;padding:2px 8px;border:1px solid var(--color-primary-200);border-radius:var(--radius-full);background:#fff;color:var(--color-primary-dark);font-size:var(--text-caption);cursor:pointer}.ask-composer[data-v-c073be33]{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--neutral-border-light)}.ask-composer textarea[data-v-c073be33]{flex:1;min-width:0;min-height:34px;max-height:80px;padding:7px 10px;border:1px solid var(--neutral-border-light);border-radius:var(--radius-sm);background:#fff;color:var(--neutral-text-main);font-size:var(--text-caption);line-height:1.4;resize:none}.ask-composer textarea[data-v-c073be33]:focus{outline:none;border-color:var(--color-primary)}.ask-send[data-v-c073be33]{flex-shrink:0;height:34px;padding:0 12px;border:none;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:var(--text-caption);font-weight:var(--weight-semibold);cursor:pointer}.ask-send[data-v-c073be33]:disabled{cursor:not-allowed;opacity:.6}@media (max-width: 480px){.mate-ask-float[data-v-c073be33]{right:12px;bottom:12px}.ask-mini[data-v-c073be33]{width:280px}.ask-card[data-v-c073be33]{width:calc(100vw - 24px)}}.mate-ask-float.compact[data-v-c073be33]{right:44px;bottom:44px}.compact .ask-mini[data-v-c073be33]{width:210px;min-height:54px;gap:8px;padding:8px 12px}.compact .ask-mini-avatar[data-v-c073be33]{width:28px;height:28px}.compact .ask-mini-copy strong[data-v-c073be33]{font-size:var(--text-caption)}.compact .ask-mini-copy small[data-v-c073be33]{font-size:11px}.compact .ask-mini>svg[data-v-c073be33]{width:13px;height:13px}.compact .ask-card[data-v-c073be33]{width:300px;margin-bottom:10px}.workspace[data-v-26664f45]{display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden;background:var(--neutral-bg)}.ws-body[data-v-26664f45]{display:flex;flex:1;min-height:0;overflow:hidden}.splitter-col[data-v-26664f45]{width:3px;flex-shrink:0;cursor:col-resize;background:var(--neutral-border-light);transition:background .15s;position:relative}.splitter-col[data-v-26664f45]:hover,.splitter-col.splitter-active[data-v-26664f45]{background:#60a5fa}.splitter-col[data-v-26664f45]:before{content:"";position:absolute;inset:0 -4px}.editor-area[data-v-26664f45]{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#fff}.editor-toolbar[data-v-26664f45]{display:flex;align-items:center;justify-content:space-between;height:44px;padding:0 16px;flex-shrink:0;background:#f3f3f3;border-bottom:1px solid #E0E0E0}.toolbar-left[data-v-26664f45]{display:flex;align-items:center;gap:4px;cursor:pointer}.toolbar-right[data-v-26664f45]{display:flex;align-items:center;gap:8px}.theme-btn[data-v-26664f45]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:#616161;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.theme-btn[data-v-26664f45]:hover{background:#0000000f;color:#212121}.theme-btn[data-v-26664f45]:active{transform:scale(.92)}.lang-label[data-v-26664f45]{font-size:12px;font-weight:var(--weight-semibold);color:#424242;letter-spacing:.04em}.run-btn[data-v-26664f45]{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;background:var(--state-success);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.run-btn[data-v-26664f45]:hover:not(:disabled){background:var(--state-success-dark)}.run-btn[data-v-26664f45]:disabled{opacity:.6;cursor:not-allowed}.complete-btn[data-v-26664f45]{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.complete-btn[data-v-26664f45]:hover{background:var(--color-primary-dark)}.complete-btn[data-v-26664f45]:active{transform:scale(.97)}.code-wrapper[data-v-26664f45]{flex:1;min-height:0;overflow:hidden}.editor-container[data-v-26664f45]{width:100%;height:100%}.editor-loading[data-v-26664f45]{width:100%;height:100%;overflow:auto;background:#fff;display:flex;flex-direction:column}.editor-fallback[data-v-26664f45]{flex:1;margin:0;padding:16px;overflow:auto;font-family:var(--font-mono);font-size:13px;line-height:1.65;color:#1c1917;white-space:pre}.loading-label[data-v-26664f45]{padding:8px 16px;color:#78716c;font-size:12px;border-top:1px solid #E7E5E4}.splitter-row[data-v-26664f45]{height:3px;flex-shrink:0;cursor:row-resize;background:#e0e0e0;transition:background .15s;position:relative}.splitter-row[data-v-26664f45]:hover,.splitter-row.splitter-active[data-v-26664f45]{background:#60a5fa}.splitter-row[data-v-26664f45]:before{content:"";position:absolute;inset:-4px 0}.output-area[data-v-26664f45]{flex-shrink:0;overflow-y:auto;background:#fff;font-family:var(--font-mono);font-size:13px;line-height:1.65}.output-header[data-v-26664f45]{display:flex;align-items:center;height:32px;padding:0 16px;flex-shrink:0;background:#f3f3f3;border-bottom:1px solid #E0E0E0}.output-label[data-v-26664f45]{font-size:12px;font-weight:var(--weight-semibold);color:#424242;letter-spacing:.04em}.output-content[data-v-26664f45]{padding:12px 20px}.output-content pre[data-v-26664f45]{color:#333;white-space:pre-wrap;word-break:break-all}.output-error[data-v-26664f45]{color:#f44747!important}.output-placeholder[data-v-26664f45]{color:#9e9e9e;font-size:13px}.modal-overlay[data-v-26664f45]{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#00000073;backdrop-filter:blur(1px)}.modal-card[data-v-26664f45]{width:400px;max-width:90vw;background:var(--neutral-card);border-radius:var(--radius-md);padding:32px;box-shadow:var(--shadow-modal);text-align:center}.modal-icon[data-v-26664f45]{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 16px;border-radius:var(--radius-full);background:var(--state-success-light)}.modal-title[data-v-26664f45]{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:8px}.modal-desc[data-v-26664f45]{font-size:var(--text-body);color:var(--neutral-text-secondary);margin-bottom:24px}.modal-actions[data-v-26664f45]{display:flex;gap:12px;justify-content:center}.modal-btn[data-v-26664f45]{height:38px;padding:0 18px;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.modal-btn.primary[data-v-26664f45]{background:var(--color-primary);color:#fff;border:none}.modal-btn.primary[data-v-26664f45]:hover{background:var(--color-primary-dark)}.modal-btn.secondary[data-v-26664f45]{background:#fff;color:var(--color-primary);border:1px solid var(--color-primary)}.modal-btn.secondary[data-v-26664f45]:hover{background:var(--color-primary-light)}.modal-enter-active[data-v-26664f45]{transition:all .24s var(--ease-out)}.modal-leave-active[data-v-26664f45]{transition:all .2s var(--ease-out)}.modal-enter-from[data-v-26664f45],.modal-leave-to[data-v-26664f45]{opacity:0;transform:scale(.95)}.sim-badge[data-v-26664f45]{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary-dark);font-size:var(--text-caption);font-weight:var(--weight-bold);vertical-align:3px;letter-spacing:.5px}.modal-notice[data-v-26664f45]{margin-top:8px}.modal-desc-sub[data-v-26664f45]{margin-top:6px;color:var(--neutral-text-secondary);line-height:1.7}.modal-icon-amber[data-v-26664f45]{background:var(--color-primary-light)}@media (max-width: 768px){.ws-body[data-v-26664f45]{flex-direction:column}.splitter-col[data-v-26664f45]{display:none}}.dark-theme[data-v-26664f45]{background:#1e1e1e}.dark-theme .editor-toolbar[data-v-26664f45]{background:#252526;border-bottom-color:#3c3c3c}.dark-theme .lang-label[data-v-26664f45],.dark-theme .theme-btn[data-v-26664f45]{color:#ccc}.dark-theme .theme-btn[data-v-26664f45]:hover{background:#ffffff14;color:#fff}.dark-theme .splitter-row[data-v-26664f45]{background:#3c3c3c}.dark-theme .output-area[data-v-26664f45]{background:#1e1e1e}.dark-theme .output-header[data-v-26664f45]{background:#252526;border-bottom-color:#3c3c3c}.dark-theme .output-label[data-v-26664f45]{color:#ccc}.dark-theme .output-content pre[data-v-26664f45]{color:#d4d4d4}.dark-theme .output-placeholder[data-v-26664f45]{color:#6a6a6a}.solarized-theme[data-v-26664f45]{background:#fdf6e3}.solarized-theme .editor-toolbar[data-v-26664f45]{background:#eee8d5;border-bottom-color:#d3cbb8}.solarized-theme .lang-label[data-v-26664f45],.solarized-theme .theme-btn[data-v-26664f45]{color:#586e75}.solarized-theme .theme-btn[data-v-26664f45]:hover{background:#93a1a126;color:#073642}.solarized-theme .run-btn[data-v-26664f45]{background:#2aa198}.solarized-theme .run-btn[data-v-26664f45]:hover:not(:disabled){background:#268bd2}.solarized-theme .splitter-row[data-v-26664f45]{background:#d3cbb8}.solarized-theme .output-area[data-v-26664f45]{background:#fdf6e3}.solarized-theme .output-header[data-v-26664f45]{background:#eee8d5;border-bottom-color:#d3cbb8}.solarized-theme .output-label[data-v-26664f45],.solarized-theme .output-content pre[data-v-26664f45]{color:#586e75}.solarized-theme .output-placeholder[data-v-26664f45]{color:#839496}.preview-area[data-v-5fa86fa5]{display:flex;flex-direction:column;height:auto;min-height:0;align-self:stretch;background:#fff;border-left:1px solid #E0E0E0;flex-shrink:0;overflow:hidden}.preview-toolbar[data-v-5fa86fa5]{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 12px;flex-shrink:0;background:#f3f3f3;border-bottom:1px solid #E0E0E0}.device-switch[data-v-5fa86fa5]{display:flex;gap:2px;background:#e0e0e0;border-radius:6px;padding:2px}.device-btn[data-v-5fa86fa5]{display:flex;align-items:center;justify-content:center;width:28px;height:26px;border:none;border-radius:4px;background:transparent;color:#757575;cursor:pointer;transition:all .15s ease}.device-btn[data-v-5fa86fa5]:hover{color:#424242}.device-btn.active[data-v-5fa86fa5]{background:#fff;color:#3b82f6;box-shadow:0 1px 2px #00000014}.preview-label[data-v-5fa86fa5]{font-size:12px;font-weight:600;color:#424242;letter-spacing:.04em}.preview-frame-wrap[data-v-5fa86fa5]{flex:1;min-height:0;overflow:hidden;display:flex;justify-content:center;background:#e8e8e8;padding:16px}.preview-frame-wrap.device-tablet[data-v-5fa86fa5]{padding:24px}.preview-frame-wrap.device-mobile[data-v-5fa86fa5]{padding:32px 16px}.preview-frame[data-v-5fa86fa5]{width:100%;height:100%;border:none;background:#fff;border-radius:4px;box-shadow:0 2px 8px #0000001a;transition:max-width .3s ease}.device-tablet .preview-frame[data-v-5fa86fa5]{max-width:768px}.device-mobile .preview-frame[data-v-5fa86fa5]{max-width:375px}.preview-error-bar[data-v-5fa86fa5]{display:flex;align-items:flex-start;gap:8px;padding:8px 16px;background:#fff3f3;border-top:1px solid #FFD7D7;flex-shrink:0;max-height:80px;overflow-y:auto}.error-text[data-v-5fa86fa5]{font-size:12px;color:#e53935;font-family:var(--font-mono);line-height:1.5;word-break:break-all}.frontend-workspace[data-v-dc95f3dd]{display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden;background:var(--neutral-bg)}.fw-body[data-v-dc95f3dd]{display:flex;flex:1;min-height:0;overflow:hidden}.splitter-col[data-v-dc95f3dd]{width:3px;flex-shrink:0;cursor:col-resize;background:var(--neutral-border-light);transition:background .15s;position:relative}.splitter-col[data-v-dc95f3dd]:hover,.splitter-col.splitter-active[data-v-dc95f3dd]{background:#60a5fa}.splitter-col[data-v-dc95f3dd]:before{content:"";position:absolute;inset:0 -4px}.editor-area[data-v-dc95f3dd]{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#fff}.editor-toolbar[data-v-dc95f3dd]{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 16px;flex-shrink:0;background:#f3f3f3;border-bottom:1px solid #E0E0E0}.toolbar-left[data-v-dc95f3dd]{display:flex;align-items:center}.toolbar-right[data-v-dc95f3dd]{display:flex;align-items:center;gap:8px}.lang-label[data-v-dc95f3dd]{font-size:12px;font-weight:600;color:#424242;letter-spacing:.04em}.exercise-select select[data-v-dc95f3dd]{height:28px;padding:0 8px;border:1px solid #D4D4D4;border-radius:6px;background:#fff;font-size:12px;color:#424242;cursor:pointer;outline:none}.exercise-select select[data-v-dc95f3dd]:focus{border-color:#3b82f6}.theme-btn[data-v-dc95f3dd]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:#616161;cursor:pointer;transition:all .2s ease}.theme-btn[data-v-dc95f3dd]:hover{background:#0000000f;color:#212121}.complete-btn[data-v-dc95f3dd]{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.complete-btn[data-v-dc95f3dd]:hover{background:var(--color-primary-dark)}.complete-btn[data-v-dc95f3dd]:active{transform:scale(.97)}.code-wrapper[data-v-dc95f3dd]{flex:1;min-height:0;overflow:hidden}.editor-container[data-v-dc95f3dd]{width:100%;height:100%}.editor-loading[data-v-dc95f3dd]{width:100%;height:100%;overflow:auto;background:#fff;display:flex;flex-direction:column}.editor-fallback[data-v-dc95f3dd]{flex:1;margin:0;padding:16px;overflow:auto;font-family:var(--font-mono);font-size:13px;line-height:1.65;color:#1c1917;white-space:pre}.loading-label[data-v-dc95f3dd]{padding:8px 16px;color:#78716c;font-size:12px;border-top:1px solid #E7E5E4}@media (max-width: 768px){.fw-body[data-v-dc95f3dd]{flex-direction:column}.splitter-col[data-v-dc95f3dd]{display:none}}.dark-theme[data-v-dc95f3dd]{background:#1e1e1e}.dark-theme .editor-toolbar[data-v-dc95f3dd]{background:#252526;border-bottom-color:#3c3c3c}.dark-theme .lang-label[data-v-dc95f3dd],.dark-theme .theme-btn[data-v-dc95f3dd]{color:#ccc}.dark-theme .theme-btn[data-v-dc95f3dd]:hover{background:#ffffff14;color:#fff}.dark-theme .exercise-select select[data-v-dc95f3dd]{background:#3c3c3c;border-color:#555;color:#ccc}.solarized-theme[data-v-dc95f3dd]{background:#fdf6e3}.solarized-theme .editor-toolbar[data-v-dc95f3dd]{background:#eee8d5;border-bottom-color:#d3cbb8}.solarized-theme .lang-label[data-v-dc95f3dd],.solarized-theme .theme-btn[data-v-dc95f3dd]{color:#586e75}.solarized-theme .theme-btn[data-v-dc95f3dd]:hover{background:#93a1a126;color:#073642}.file-tabs[data-v-b420910c]{display:flex;gap:0;background:#ececec;border-bottom:1px solid #D4D4D4;padding:0}.tab-btn[data-v-b420910c]{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 18px;border:none;border-bottom:2px solid transparent;background:transparent;font-size:12px;font-weight:600;color:#616161;cursor:pointer;transition:all .15s ease;letter-spacing:.03em}.tab-btn[data-v-b420910c]:hover{color:#212121;background:#0000000a}.tab-btn.active[data-v-b420910c]{color:#212121;background:#fff;border-bottom-color:#3b82f6}.tab-dot[data-v-b420910c]{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.web-workspace[data-v-f9444559]{display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden;background:var(--neutral-bg)}.ww-body[data-v-f9444559]{display:flex;flex:1;min-height:0;overflow:hidden}.splitter-col[data-v-f9444559]{width:3px;flex-shrink:0;cursor:col-resize;background:var(--neutral-border-light);transition:background .15s;position:relative}.splitter-col[data-v-f9444559]:hover,.splitter-col.splitter-active[data-v-f9444559]{background:#60a5fa}.splitter-col[data-v-f9444559]:before{content:"";position:absolute;inset:0 -4px}.editor-area[data-v-f9444559]{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.editor-toolbar[data-v-f9444559]{display:flex;align-items:center;justify-content:space-between;gap:12px;height:44px;padding:0 12px 0 0;background:#ececec;border-bottom:1px solid #D4D4D4;flex-shrink:0}.toolbar-left[data-v-f9444559]{display:flex;align-items:center;flex:1;min-width:0}.toolbar-left[data-v-f9444559] .file-tabs{background:transparent;border-bottom:none}.toolbar-right[data-v-f9444559]{display:flex;align-items:center;gap:10px;flex-shrink:0}.exercise-select select[data-v-f9444559]{height:30px;padding:0 8px;border:1px solid #c8c8c8;border-radius:var(--radius-sm);font-size:12px;background:#fff;color:#333;max-width:200px}.complete-btn[data-v-f9444559]{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 14px;background:var(--state-success);color:#fff;border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.complete-btn[data-v-f9444559]:hover{background:var(--state-success-dark)}.code-wrapper[data-v-f9444559]{flex:1;min-height:0;position:relative}.editor-container[data-v-f9444559]{position:absolute;inset:0}.editor-loading[data-v-f9444559]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#1e1e1e}.loading-label[data-v-f9444559]{color:#8a8a8a;font-size:13px}.preview-panel[data-v-f9444559]{flex-shrink:0;display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--neutral-border-light);overflow:hidden}.preview-toolbar[data-v-f9444559]{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 12px;background:#f3f3f3;border-bottom:1px solid var(--neutral-border-light);flex-shrink:0}.preview-label[data-v-f9444559]{font-size:12px;font-weight:var(--weight-semibold);color:#424242;letter-spacing:.04em}.refresh-btn[data-v-f9444559]{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--neutral-border-light);border-radius:var(--radius-sm);background:#fff;color:var(--neutral-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.refresh-btn[data-v-f9444559]:hover{color:var(--color-primary);border-color:var(--color-primary)}.preview-frame[data-v-f9444559]{flex:1;min-height:0;width:100%;border:none;background:#fff}.gl-timeline[data-v-064ac32d]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-card)}.gl-title[data-v-064ac32d]{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:24px}.gl-track[data-v-064ac32d]{display:flex;justify-content:center}.gl-track-vertical[data-v-064ac32d]{justify-content:flex-start}.gl-svg[data-v-064ac32d]{display:block;max-width:100%;height:auto}.gl-svg-vertical[data-v-064ac32d]{flex-shrink:0}.gl-line[data-v-064ac32d]{animation:drawLine-064ac32d .6s var(--ease-out) forwards}.gl-dot[data-v-064ac32d]{opacity:0;transform-origin:center;animation:dotBounce-064ac32d .4s var(--ease-out) forwards}.gl-labels[data-v-064ac32d]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:4px}.gl-labels-vertical[data-v-064ac32d]{display:none}.gl-label-item[data-v-064ac32d]{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;animation:labelFade-064ac32d .4s var(--ease-out) both}.gl-label-title[data-v-064ac32d]{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--neutral-text-main);white-space:nowrap;text-align:center}.gl-label-tag[data-v-064ac32d]{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-semibold);white-space:nowrap}.tag-gray[data-v-064ac32d]{background:var(--neutral-hover);color:var(--neutral-text-secondary)}.tag-amber[data-v-064ac32d]{background:var(--color-primary-light);color:var(--color-primary-dark)}.tag-blue[data-v-064ac32d]{background:var(--state-info-light);color:var(--state-info-dark)}.tag-green[data-v-064ac32d]{background:var(--state-success-light);color:var(--state-success-dark)}.gl-summary[data-v-064ac32d]{margin-top:24px;text-align:center;font-size:var(--text-body);color:var(--neutral-text-secondary);line-height:1.6}.gl-empty[data-v-064ac32d]{text-align:center;padding:16px 0}.gl-empty p[data-v-064ac32d]{font-size:var(--text-body);color:var(--neutral-text-secondary);line-height:1.6}@keyframes drawLine-064ac32d{to{stroke-dashoffset:0}}@keyframes dotBounce-064ac32d{0%{opacity:0;r:0}60%{opacity:1;r:9}to{opacity:1;r:8}}@keyframes labelFade-064ac32d{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.gl-line[data-v-064ac32d]{animation:none;stroke-dashoffset:0!important}.gl-dot[data-v-064ac32d],.gl-label-item[data-v-064ac32d]{animation:none;opacity:1}}@media (max-width: 640px){.gl-labels[data-v-064ac32d]{grid-template-columns:repeat(2,1fr);gap:12px 8px}.gl-label-tag[data-v-064ac32d]{font-size:10px;padding:2px 8px}}.completion-page[data-v-103de0c7]{background:var(--neutral-bg);position:relative;overflow:hidden}.confetti-container[data-v-103de0c7]{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.confetti-dot[data-v-103de0c7]{position:absolute;border-radius:var(--radius-full);top:-10px;opacity:0;animation:confettiFloat-103de0c7 2.5s ease-out infinite}@keyframes confettiFloat-103de0c7{0%{transform:translateY(0) rotate(0);opacity:0}20%{opacity:.7}to{transform:translateY(100vh) rotate(360deg);opacity:0}}.completion-content[data-v-103de0c7]{position:relative;z-index:1;max-width:720px;margin:0 auto;padding:64px 24px 80px}.celebrate-section[data-v-103de0c7]{text-align:center;margin-bottom:56px;animation:fadeIn-103de0c7 .4s var(--ease-out)}.celebrate-emoji[data-v-103de0c7]{font-size:60px;line-height:1;margin-bottom:16px;animation:slideUp-103de0c7 .5s var(--ease-out)}.celebrate-title[data-v-103de0c7]{font-size:var(--text-h1);font-weight:var(--weight-bold);color:var(--neutral-text-main);margin-bottom:8px}.celebrate-subtitle[data-v-103de0c7]{font-size:22px;font-weight:var(--weight-semibold);color:var(--color-primary);line-height:1.35}.section-card[data-v-103de0c7]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-card)}.section-title[data-v-103de0c7]{font-size:var(--text-h2);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:24px;text-align:center}.compare-section[data-v-103de0c7]{margin-bottom:24px;animation:slideUp-103de0c7 .5s var(--ease-out) .2s both}.radar-compare[data-v-103de0c7]{display:flex;flex-wrap:wrap;justify-content:center;gap:32px;margin-bottom:32px}.radar-item[data-v-103de0c7]{display:flex;flex-direction:column;align-items:center}.radar-label[data-v-103de0c7]{font-size:var(--text-caption);color:var(--neutral-text-secondary);margin-bottom:8px}.before-label[data-v-103de0c7]{color:var(--neutral-text-secondary)}.after-label[data-v-103de0c7]{color:var(--color-primary)}.radar-caption[data-v-103de0c7]{font-size:var(--text-caption);color:var(--neutral-text-disabled);margin-top:4px}.compare-table-wrap[data-v-103de0c7]{overflow-x:auto}.compare-table[data-v-103de0c7]{width:100%;border-collapse:collapse;font-size:var(--text-body)}.compare-table th[data-v-103de0c7]{text-align:left;padding:8px 12px;font-weight:var(--weight-semibold);color:var(--neutral-text-secondary);font-size:var(--text-body);border-bottom:1px solid var(--neutral-border-light)}.compare-table th[data-v-103de0c7]:not(:first-child){text-align:center}.compare-table td[data-v-103de0c7]{padding:10px 12px;border-bottom:1px solid var(--neutral-hover)}.compare-table tr:last-child td[data-v-103de0c7]{border-bottom:none}.improve-summary[data-v-103de0c7]{margin-top:16px;padding:10px 14px;background:var(--color-primary-50);border-radius:var(--radius-sm);color:var(--color-primary-dark);font-size:var(--text-body);font-weight:var(--weight-semibold);text-align:center}.dim-name[data-v-103de0c7]{font-size:var(--text-body);color:var(--neutral-text-main)}.dim-name.dim-highlight[data-v-103de0c7]{font-weight:var(--weight-semibold)}.dim-before[data-v-103de0c7],.dim-after[data-v-103de0c7]{text-align:center;color:var(--neutral-text-secondary)}.dim-after.improved[data-v-103de0c7]{color:var(--color-primary-dark);font-weight:var(--weight-semibold)}.dim-diff[data-v-103de0c7]{text-align:center}.dim-diff.positive[data-v-103de0c7]{color:var(--state-success);font-weight:var(--weight-semibold)}.growth-section[data-v-103de0c7]{margin-bottom:24px;animation:slideUp-103de0c7 .5s var(--ease-out) .4s both}.growth-loading[data-v-103de0c7]{padding:28px 24px 32px;background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.growth-loading .section-title[data-v-103de0c7]{margin-bottom:8px}.growth-loading-visual[data-v-103de0c7]{position:relative;display:flex;align-items:center;justify-content:center;gap:44px;min-height:56px;margin:16px 0 8px}.growth-loading-visual[data-v-103de0c7]:before{content:"";position:absolute;left:18%;right:18%;top:50%;height:2px;background:var(--neutral-border-light)}.growth-loading-dot[data-v-103de0c7]{position:relative;width:10px;height:10px;border-radius:var(--radius-full);background:var(--color-primary);opacity:.2;animation:growthLoadingPulse-103de0c7 1s ease-in-out infinite}.growth-loading-text[data-v-103de0c7]{text-align:center;color:var(--neutral-text-secondary);font-size:var(--text-body)}.mate-comment-section[data-v-103de0c7]{display:flex;align-items:flex-start;gap:16px;margin-bottom:32px;background:var(--color-primary-50);border-color:var(--color-primary-200);animation:slideUp-103de0c7 .5s var(--ease-out) .4s both}.comment-avatar[data-v-103de0c7]{flex-shrink:0}.mate-comment-img[data-v-103de0c7]{width:32px;height:32px;border-radius:var(--radius-full);object-fit:cover}.comment-header[data-v-103de0c7]{font-size:var(--text-caption);color:var(--color-primary-dark);margin-bottom:4px}.comment-text[data-v-103de0c7]{font-size:var(--text-body-l);line-height:1.7;color:var(--neutral-text-main)}.action-section[data-v-103de0c7]{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;animation:fadeIn-103de0c7 .4s var(--ease-out) .6s both}.offline-banner[data-v-103de0c7]{margin-bottom:20px;padding:10px 14px;border-radius:var(--radius-md);background:#fef3c7;color:#92400e;font-size:var(--text-body);text-align:center}.completion-hint[data-v-103de0c7]{margin-top:20px;padding:12px 16px;border-radius:var(--radius-md);background:var(--color-primary-light);color:var(--color-primary-dark);text-align:center;font-size:var(--text-body);animation:fadeIn-103de0c7 .4s var(--ease-out) .4s both}.completion-hint-error[data-v-103de0c7]{background:var(--state-error-light, #FEF2F2);color:var(--state-error-dark, #B91C1C)}.action-btn[data-v-103de0c7]{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 20px;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.action-btn.primary[data-v-103de0c7]{background:var(--color-primary);color:#fff;border:none}.action-btn.primary[data-v-103de0c7]:hover{background:var(--color-primary-dark)}.action-btn.secondary[data-v-103de0c7]{background:#fff;color:var(--color-primary);border:1px solid var(--color-primary)}.action-btn.secondary[data-v-103de0c7]:hover{background:var(--color-primary-light)}.action-btn[data-v-103de0c7]:active{transform:scale(.97)}@keyframes fadeIn-103de0c7{0%{opacity:0}to{opacity:1}}@keyframes slideUp-103de0c7{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes growthLoadingPulse-103de0c7{0%,to{opacity:.2;transform:scale(1)}50%{opacity:1;transform:scale(1.25)}}@media (prefers-reduced-motion: reduce){.confetti-dot[data-v-103de0c7]{animation:none;display:none}.growth-loading-dot[data-v-103de0c7]{animation:none;opacity:1}}@media (max-width: 640px){.completion-content[data-v-103de0c7]{padding:48px 16px 64px}.radar-compare[data-v-103de0c7]{flex-direction:column;align-items:center;gap:24px}.action-section[data-v-103de0c7]{flex-direction:column;align-items:stretch}.action-btn[data-v-103de0c7]{width:100%;justify-content:center}}.placeholder-page[data-v-7d2491b9]{background:var(--neutral-bg)}.placeholder-content[data-v-7d2491b9]{display:flex;align-items:center;justify-content:center;padding:60px 24px}.placeholder-card[data-v-7d2491b9]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-lg);padding:40px;max-width:520px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.available-tag[data-v-7d2491b9]{background:var(--state-success-light);color:var(--state-success-dark);padding:4px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.placeholder-title[data-v-7d2491b9]{font-size:22px;font-weight:700;color:var(--neutral-text-main)}.placeholder-desc[data-v-7d2491b9]{font-size:14px;color:var(--neutral-text-secondary);line-height:1.6}.terminal-preview[data-v-7d2491b9]{width:100%;background:#1e1e1e;border-radius:var(--radius-sm);overflow:hidden;margin-top:8px}.terminal-header[data-v-7d2491b9]{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#2d2d2d}.terminal-dot[data-v-7d2491b9]{width:10px;height:10px;border-radius:var(--radius-full)}.terminal-dot.red[data-v-7d2491b9]{background:#ff5f56}.terminal-dot.yellow[data-v-7d2491b9]{background:#ffbd2e}.terminal-dot.green[data-v-7d2491b9]{background:#27c93f}.terminal-title[data-v-7d2491b9]{margin-left:8px;font-size:12px;color:#999}.terminal-body[data-v-7d2491b9]{padding:14px;text-align:left;font-family:var(--font-mono);font-size:13px}.terminal-line[data-v-7d2491b9]{color:#d4d4d4;line-height:1.8}.terminal-line.dim[data-v-7d2491b9]{color:#6a6a6a}.terminal-line.success[data-v-7d2491b9]{color:#4ec9b0}.prompt[data-v-7d2491b9]{color:#6a9955;font-weight:700}.cursor[data-v-7d2491b9]{animation:blink-cursor-7d2491b9 1s steps(1) infinite}.enter-btn[data-v-7d2491b9]{margin-top:8px;padding:10px 32px;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.enter-btn[data-v-7d2491b9]:hover{background:var(--color-primary-dark)}.enter-btn[data-v-7d2491b9]:active{transform:scale(.97)}@keyframes blink-cursor-7d2491b9{0%,to{opacity:1}50%{opacity:0}}.placeholder-page[data-v-3e7bf6f0]{background:var(--neutral-bg)}.placeholder-content[data-v-3e7bf6f0]{display:flex;align-items:center;justify-content:center;padding:60px 24px}.placeholder-card[data-v-3e7bf6f0]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-lg);padding:40px;max-width:520px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.available-tag[data-v-3e7bf6f0]{background:var(--state-success-light);color:var(--state-success-dark);padding:4px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.placeholder-title[data-v-3e7bf6f0]{font-size:22px;font-weight:700;color:var(--neutral-text-main)}.placeholder-desc[data-v-3e7bf6f0]{font-size:14px;color:var(--neutral-text-secondary);line-height:1.6}.iot-preview[data-v-3e7bf6f0]{width:100%;background:#1e1e1e;border-radius:var(--radius-sm);overflow:hidden;margin-top:8px}.iot-header[data-v-3e7bf6f0]{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#2d2d2d}.iot-dot[data-v-3e7bf6f0]{width:10px;height:10px;border-radius:var(--radius-full);background:#4ec9b0}.iot-title[data-v-3e7bf6f0]{font-size:12px;color:#999;font-family:var(--font-mono)}.ladder-preview[data-v-3e7bf6f0]{display:block;padding:8px 4px}.enter-btn[data-v-3e7bf6f0]{margin-top:8px;padding:10px 32px;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.enter-btn[data-v-3e7bf6f0]:hover{background:var(--color-primary-dark)}.enter-btn[data-v-3e7bf6f0]:active{transform:scale(.97)}.placeholder-page[data-v-864c421b]{background:var(--neutral-bg)}.placeholder-content[data-v-864c421b]{display:flex;align-items:center;justify-content:center;padding:40px 24px}.placeholder-card[data-v-864c421b]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-lg);padding:40px;max-width:600px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.available-tag[data-v-864c421b]{background:var(--state-success-light);color:var(--state-success-dark);padding:4px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:600}.placeholder-title[data-v-864c421b]{font-size:22px;font-weight:700;color:var(--neutral-text-main)}.placeholder-desc[data-v-864c421b]{font-size:14px;color:var(--neutral-text-secondary);line-height:1.6}.editor-preview[data-v-864c421b]{width:100%;background:#1e1e1e;border-radius:var(--radius-sm);overflow:hidden;margin-top:8px}.editor-header[data-v-864c421b]{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#2d2d2d}.editor-dot[data-v-864c421b]{width:10px;height:10px;border-radius:var(--radius-full)}.editor-dot.red[data-v-864c421b]{background:#ff5f56}.editor-dot.yellow[data-v-864c421b]{background:#ffbd2e}.editor-dot.green[data-v-864c421b]{background:#27c93f}.editor-title[data-v-864c421b]{margin-left:8px;font-size:12px;color:#999}.editor-body[data-v-864c421b]{padding:14px;text-align:left;font-family:var(--font-mono);font-size:13px;line-height:1.8}.code-line[data-v-864c421b]{color:#d4d4d4;white-space:pre-wrap}.line-num[data-v-864c421b]{display:inline-block;width:24px;color:#6a6a6a;text-align:right;margin-right:12px;user-select:none}.keyword[data-v-864c421b]{color:#c586c0}.class-name[data-v-864c421b]{color:#4ec9b0}.annotation[data-v-864c421b]{color:#dcdcaa}.string[data-v-864c421b]{color:#ce9178}.method[data-v-864c421b]{color:#dcdcaa}.cursor-line[data-v-864c421b]{color:#d4d4d4}.cursor-line .cursor[data-v-864c421b]{animation:blink-cursor-864c421b 1s steps(1) infinite}.enter-btn[data-v-864c421b]{margin-top:8px;padding:10px 32px;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.enter-btn[data-v-864c421b]:hover{background:var(--color-primary-dark)}.enter-btn[data-v-864c421b]:active{transform:scale(.97)}@keyframes blink-cursor-864c421b{0%,to{opacity:1}50%{opacity:0}}.hub-page[data-v-344db7ad]{background:var(--neutral-bg)}.hub-content[data-v-344db7ad]{display:flex;align-items:center;justify-content:center;gap:24px;padding:60px 24px;flex-wrap:wrap}.sub-card[data-v-344db7ad]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:all var(--duration-fast) var(--ease-out);cursor:pointer;max-width:360px;width:100%}.sub-card[data-v-344db7ad]:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-4px)}.card-inner[data-v-344db7ad]{padding:28px;display:flex;flex-direction:column}.sub-tag[data-v-344db7ad]{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-semibold);margin-bottom:14px;background:var(--state-success-light);color:var(--state-success-dark);align-self:flex-start}.card-icon[data-v-344db7ad]{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:#fff;margin-bottom:14px}.java-icon[data-v-344db7ad]{background:#e76f00}.vue-icon[data-v-344db7ad]{background:#42b883}.web-icon[data-v-344db7ad]{background:#3b82f6}.sub-title[data-v-344db7ad]{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:8px}.sub-desc[data-v-344db7ad]{font-size:var(--text-body);color:var(--neutral-text-secondary);line-height:1.5;margin-bottom:18px}.sub-btn[data-v-344db7ad]{display:inline-flex;align-items:center;justify-content:center;width:100%;height:40px;padding:0 20px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.sub-btn[data-v-344db7ad]:hover{background:var(--color-primary-dark)}.sub-btn[data-v-344db7ad]:active{transform:scale(.97)}.hub-page[data-v-81d245b7]{background:var(--neutral-bg)}.hub-content[data-v-81d245b7]{display:flex;align-items:center;justify-content:center;gap:24px;padding:60px 24px;flex-wrap:wrap}.sub-card[data-v-81d245b7]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:all var(--duration-fast) var(--ease-out);cursor:pointer;max-width:360px;width:100%}.sub-card[data-v-81d245b7]:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-4px)}.card-inner[data-v-81d245b7]{padding:28px;display:flex;flex-direction:column}.sub-tag[data-v-81d245b7]{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-semibold);margin-bottom:14px;background:var(--state-success-light);color:var(--state-success-dark);align-self:flex-start}.card-icon[data-v-81d245b7]{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:#fff;margin-bottom:14px}.linux-icon[data-v-81d245b7]{background:#2d6a4f}.network-icon[data-v-81d245b7]{background:#5c4d7d}.sub-title[data-v-81d245b7]{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:8px}.sub-desc[data-v-81d245b7]{font-size:var(--text-body);color:var(--neutral-text-secondary);line-height:1.5;margin-bottom:18px}.sub-btn[data-v-81d245b7]{display:inline-flex;align-items:center;justify-content:center;width:100%;height:40px;padding:0 20px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.sub-btn[data-v-81d245b7]:hover{background:var(--color-primary-dark)}.sub-btn[data-v-81d245b7]:active{transform:scale(.97)}.cloud-terminal[data-v-6c9b101c]{display:flex;flex-direction:column;height:100%;background:#1e1e1e;overflow:hidden}.terminal-body[data-v-6c9b101c]{flex:1;overflow-y:auto;padding:16px;font-family:JetBrains Mono,Monaco,Cascadia Code,Fira Code,Consolas,monospace;font-size:14px;line-height:1.6}.terminal-body[data-v-6c9b101c]::-webkit-scrollbar{width:6px}.terminal-body[data-v-6c9b101c]::-webkit-scrollbar-track{background:#1e1e1e}.terminal-body[data-v-6c9b101c]::-webkit-scrollbar-thumb{background:#4a4a4a;border-radius:3px}.terminal-output[data-v-6c9b101c]{margin-bottom:2px}.terminal-input-line[data-v-6c9b101c]{color:#d4d4d4}.terminal-result[data-v-6c9b101c]{margin:0;padding:0;white-space:pre-wrap;word-break:break-all}.terminal-result.success[data-v-6c9b101c]{color:#d4d4d4}.terminal-result.error[data-v-6c9b101c]{color:#f44747}.prompt[data-v-6c9b101c]{color:#6a9955;font-weight:700}.terminal-input-row[data-v-6c9b101c]{display:flex;align-items:flex-start;padding:8px 16px 12px;border-top:1px solid #333;background:#1e1e1e}.terminal-textarea[data-v-6c9b101c]{flex:1;background:transparent;border:none;outline:none;color:#d4d4d4;font-family:JetBrains Mono,Monaco,Cascadia Code,Fira Code,Consolas,monospace;font-size:14px;line-height:1.6;resize:none;padding:0;margin-left:8px;caret-color:#4ec9b0}.terminal-textarea[data-v-6c9b101c]::placeholder{color:transparent}.workspace[data-v-54e025ee]{display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden;background:var(--neutral-bg)}.ws-body[data-v-54e025ee]{display:flex;flex:1;min-height:0;overflow:hidden}.splitter-col[data-v-54e025ee]{width:3px;flex-shrink:0;cursor:col-resize;background:var(--neutral-border-light);transition:background .15s;position:relative}.splitter-col[data-v-54e025ee]:hover,.splitter-col.splitter-active[data-v-54e025ee]{background:#60a5fa}.splitter-col[data-v-54e025ee]:before{content:"";position:absolute;inset:0 -4px}.terminal-area[data-v-54e025ee]{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.terminal-toolbar[data-v-54e025ee]{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 16px;flex-shrink:0;background:#252526;border-bottom:1px solid #3c3c3c}.toolbar-left[data-v-54e025ee]{display:flex;align-items:center;gap:16px}.lang-label[data-v-54e025ee]{font-size:12px;font-weight:var(--weight-semibold);color:#ccc;letter-spacing:.04em}.task-progress[data-v-54e025ee]{font-size:12px;color:#6a9955}.output-panel[data-v-54e025ee]{flex-shrink:0;background:var(--neutral-card);border-left:1px solid var(--neutral-border-light);overflow-y:auto;display:flex;flex-direction:column}.output-header[data-v-54e025ee]{display:flex;align-items:center;height:36px;padding:0 16px;background:#f3f3f3;border-bottom:1px solid var(--neutral-border-light)}.output-label[data-v-54e025ee]{font-size:12px;font-weight:var(--weight-semibold);color:#424242;letter-spacing:.04em}.output-body[data-v-54e025ee]{padding:12px 16px;display:flex;flex-direction:column;gap:10px}.stat-row[data-v-54e025ee]{display:flex;justify-content:space-between;align-items:center}.stat-label[data-v-54e025ee]{font-size:var(--text-body);color:var(--neutral-text-secondary)}.stat-value[data-v-54e025ee]{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--neutral-text-main)}.stat-value.good[data-v-54e025ee]{color:var(--state-success)}.stat-value.bad[data-v-54e025ee],.stat-value.error[data-v-54e025ee]{color:var(--state-error)}.task-item[data-v-54e025ee]{display:flex;align-items:center;gap:8px;font-size:var(--text-body)}.task-item.task-done[data-v-54e025ee]{color:var(--state-success)}.task-check[data-v-54e025ee]{font-size:14px}.task-name[data-v-54e025ee]{color:var(--neutral-text-main)}.complete-btn[data-v-54e025ee]{margin:12px 16px;padding:8px 0;background:var(--state-success);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.complete-btn[data-v-54e025ee]:hover{background:var(--state-success-dark)}.complete-btn[data-v-54e025ee]:active{transform:scale(.97)}.next-task-hint[data-v-54e025ee]{margin:0 16px 12px;font-size:var(--text-caption);color:var(--state-info);text-align:center}.modal-overlay[data-v-54e025ee]{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#00000073;backdrop-filter:blur(1px)}.modal-card[data-v-54e025ee]{width:400px;max-width:90vw;background:var(--neutral-card);border-radius:var(--radius-md);padding:32px;box-shadow:var(--shadow-modal);text-align:center}.modal-icon[data-v-54e025ee]{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 16px;border-radius:var(--radius-full);background:var(--state-success-light)}.modal-title[data-v-54e025ee]{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:8px}.modal-desc[data-v-54e025ee]{font-size:var(--text-body);color:var(--neutral-text-secondary);margin-bottom:24px}.modal-actions[data-v-54e025ee]{display:flex;gap:12px;justify-content:center}.modal-btn[data-v-54e025ee]{height:38px;padding:0 18px;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.modal-btn.primary[data-v-54e025ee]{background:var(--color-primary);color:#fff;border:none}.modal-btn.primary[data-v-54e025ee]:hover{background:var(--color-primary-dark)}.modal-btn.secondary[data-v-54e025ee]{background:#fff;color:var(--color-primary);border:1px solid var(--color-primary)}.modal-btn.secondary[data-v-54e025ee]:hover{background:var(--color-primary-light)}.modal-enter-active[data-v-54e025ee]{transition:all .24s var(--ease-out)}.modal-leave-active[data-v-54e025ee]{transition:all .2s var(--ease-out)}.modal-enter-from[data-v-54e025ee],.modal-leave-to[data-v-54e025ee]{opacity:0;transform:scale(.95)}.topo-wrapper[data-v-b8399e8c]{display:flex;height:100%;overflow:hidden}.device-panel[data-v-b8399e8c]{width:80px;flex-shrink:0;background:#252526;border-right:1px solid #3c3c3c;padding:12px 8px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.device-item[data-v-b8399e8c]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:var(--radius-sm);cursor:grab;transition:background var(--duration-fast) var(--ease-out)}.device-item[data-v-b8399e8c]:hover{background:#ffffff14}.device-item[data-v-b8399e8c]:active{cursor:grabbing}.device-label[data-v-b8399e8c]{font-size:10px;color:#aaa;white-space:nowrap}.svg-area[data-v-b8399e8c]{flex:1;position:relative;background:#2b2b2b;min-width:0;overflow:hidden}.canvas-hint[data-v-b8399e8c]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#666;font-size:14px;pointer-events:none}.svg-area svg[data-v-b8399e8c]{display:block}.device-selected rect[data-v-b8399e8c]:first-child{stroke:#f59e0b;stroke-width:2}.port-dot[data-v-b8399e8c]{cursor:pointer;transition:fill var(--duration-fast) var(--ease-out)}.port-dot[data-v-b8399e8c]:hover{fill:#a29bfe}.link-selected[data-v-b8399e8c]{stroke:#f59e0b;stroke-width:2.5}.delete-cross[data-v-b8399e8c]{cursor:pointer}.delete-cross[data-v-b8399e8c]:hover{stroke:#f44;stroke-width:3}.validate-btn[data-v-b8399e8c]{position:absolute;bottom:16px;right:180px;padding:8px 18px;background:#6c5ce7;color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);box-shadow:0 2px 8px #6c5ce766}.validate-btn[data-v-b8399e8c]:hover{background:#7c5dbf;transform:translateY(-1px)}.validate-btn[data-v-b8399e8c]:active{transform:scale(.97)}.port-selector-overlay[data-v-b8399e8c]{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:20}.port-selector[data-v-b8399e8c]{background:var(--neutral-card);border-radius:var(--radius-md);padding:24px;min-width:260px;box-shadow:var(--shadow-modal)}.port-selector-title[data-v-b8399e8c]{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:16px;text-align:center}.port-selector-list[data-v-b8399e8c]{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.port-option[data-v-b8399e8c]{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--neutral-border-light);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.port-option[data-v-b8399e8c]:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.port-option.port-used[data-v-b8399e8c]{opacity:.5;cursor:not-allowed}.port-dot-small[data-v-b8399e8c]{width:8px;height:8px;border-radius:var(--radius-full);background:#6c5ce7;flex-shrink:0}.port-opt-name[data-v-b8399e8c]{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--neutral-text-main);font-family:var(--font-mono)}.port-opt-status[data-v-b8399e8c]{margin-left:auto;font-size:var(--text-caption);color:var(--neutral-text-tertiary)}.port-cancel[data-v-b8399e8c]{width:100%;height:34px;background:var(--neutral-hover);color:var(--neutral-text-secondary);border:none;border-radius:var(--radius-sm);font-size:var(--text-body);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.port-cancel[data-v-b8399e8c]:hover{background:var(--neutral-border-light)}.validation-popup[data-v-b8399e8c]{position:absolute;bottom:60px;left:16px;right:120px;padding:12px 16px;border-radius:var(--radius-sm);font-size:var(--text-body);z-index:15;display:flex;align-items:flex-start;gap:8px;box-shadow:var(--shadow-card)}.validation-popup.pass[data-v-b8399e8c]{background:#064e3b;color:#6ee7b7;border:1px solid #065f46}.validation-popup.fail[data-v-b8399e8c]{background:#7f1d1d;color:#fca5a5;border:1px solid #991b1b}.val-icon[data-v-b8399e8c]{flex-shrink:0}.val-errors[data-v-b8399e8c]{flex:1}.val-error-item[data-v-b8399e8c]{margin-bottom:4px;font-size:13px}.val-error-item[data-v-b8399e8c]:last-child{margin-bottom:0}.val-close[data-v-b8399e8c]{flex-shrink:0;background:none;border:none;color:inherit;cursor:pointer;font-size:14px;opacity:.7;padding:0;line-height:1}.val-close[data-v-b8399e8c]:hover{opacity:1}.fade-enter-active[data-v-b8399e8c],.fade-leave-active[data-v-b8399e8c]{transition:opacity .3s ease}.fade-enter-from[data-v-b8399e8c],.fade-leave-to[data-v-b8399e8c]{opacity:0}.config-panel[data-v-4849039b]{display:flex;flex-direction:column;height:100%;background:var(--neutral-card);border-left:1px solid var(--neutral-border-light);overflow-y:auto}.config-header[data-v-4849039b]{padding:20px 20px 16px;border-bottom:1px solid var(--neutral-border-light);display:flex;align-items:center;gap:10px}.config-title[data-v-4849039b]{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--neutral-text-main)}.config-type[data-v-4849039b]{padding:2px 10px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-semibold);background:var(--color-primary-light);color:var(--color-primary-dark)}.config-body[data-v-4849039b]{flex:1;padding:16px 20px;overflow-y:auto}.config-section[data-v-4849039b]{margin-bottom:20px}.section-label[data-v-4849039b]{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:12px}.port-config[data-v-4849039b]{margin-bottom:16px;padding:12px;background:var(--neutral-bg);border-radius:var(--radius-sm)}.port-header[data-v-4849039b]{display:flex;align-items:center;gap:8px;margin-bottom:10px}.port-dot[data-v-4849039b]{width:8px;height:8px;border-radius:var(--radius-full);background:#6c5ce7}.port-name[data-v-4849039b]{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--neutral-text-main);font-family:var(--font-mono)}.port-fields[data-v-4849039b]{display:flex;flex-direction:column;gap:8px}.field-row[data-v-4849039b]{display:flex;align-items:center;gap:8px}.field-label[data-v-4849039b]{font-size:var(--text-caption);color:var(--neutral-text-secondary);min-width:56px;white-space:nowrap}.field-input[data-v-4849039b]{flex:1;height:32px;padding:0 10px;border:1px solid var(--neutral-border-light);border-radius:var(--radius-sm);font-size:var(--text-body);font-family:var(--font-mono);color:var(--neutral-text-main);background:var(--neutral-card);outline:none;transition:border-color var(--duration-fast) var(--ease-out)}.field-input[data-v-4849039b]:focus{border-color:var(--color-primary)}.field-select[data-v-4849039b]{width:100%;height:36px;padding:0 10px;border:1px solid var(--neutral-border-light);border-radius:var(--radius-sm);font-size:var(--text-body);color:var(--neutral-text-main);background:var(--neutral-card);outline:none;cursor:pointer}.field-select[data-v-4849039b]:focus{border-color:var(--color-primary)}.config-actions[data-v-4849039b]{padding:16px 20px;border-top:1px solid var(--neutral-border-light);display:flex;flex-direction:column;gap:8px}.config-btn[data-v-4849039b]{height:36px;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);border:none}.save-btn[data-v-4849039b]{background:var(--state-success);color:#fff}.save-btn[data-v-4849039b]:hover{background:var(--state-success-dark)}.delete-btn[data-v-4849039b]{background:var(--state-error-light);color:var(--state-error)}.delete-btn[data-v-4849039b]:hover{background:var(--state-error);color:#fff}.cancel-btn[data-v-4849039b]{background:var(--neutral-hover);color:var(--neutral-text-secondary)}.cancel-btn[data-v-4849039b]:hover{background:var(--neutral-border-light)}.config-btn[data-v-4849039b]:active{transform:scale(.97)}.workspace[data-v-0c27a779]{display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden;background:var(--neutral-bg)}.ws-body[data-v-0c27a779]{display:flex;flex:1;min-height:0;overflow:hidden}.splitter-col[data-v-0c27a779]{width:3px;flex-shrink:0;cursor:col-resize;background:var(--neutral-border-light);transition:background .15s;position:relative}.splitter-col[data-v-0c27a779]:hover,.splitter-col.splitter-active[data-v-0c27a779]{background:#60a5fa}.splitter-col[data-v-0c27a779]:before{content:"";position:absolute;inset:0 -4px}.topo-area[data-v-0c27a779]{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column}.topo-canvas[data-v-0c27a779]{flex:1;min-height:0;overflow:hidden}.config-panel-wrapper[data-v-0c27a779]{flex-shrink:0;overflow:hidden}.info-panel[data-v-0c27a779]{flex-shrink:0;background:var(--neutral-card);border-left:1px solid var(--neutral-border-light);overflow-y:auto;display:flex;flex-direction:column}.info-header[data-v-0c27a779]{display:flex;align-items:center;height:36px;padding:0 16px;background:#f3f3f3;border-bottom:1px solid var(--neutral-border-light)}.info-label[data-v-0c27a779]{font-size:12px;font-weight:var(--weight-semibold);color:#424242;letter-spacing:.04em}.info-body[data-v-0c27a779]{padding:20px 16px;display:flex;flex-direction:column;align-items:center;gap:16px}.info-hint[data-v-0c27a779]{font-size:var(--text-body);color:var(--neutral-text-tertiary);text-align:center;line-height:1.6}.complete-btn[data-v-0c27a779]{margin-top:8px;padding:10px 24px;background:var(--state-success);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.complete-btn[data-v-0c27a779]:hover{background:var(--state-success-dark)}.complete-btn[data-v-0c27a779]:active{transform:scale(.97)}.modal-overlay[data-v-0c27a779]{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#00000073;backdrop-filter:blur(1px)}.modal-card[data-v-0c27a779]{width:400px;max-width:90vw;background:var(--neutral-card);border-radius:var(--radius-md);padding:32px;box-shadow:var(--shadow-modal);text-align:center}.modal-icon[data-v-0c27a779]{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 16px;border-radius:var(--radius-full);background:var(--state-success-light)}.modal-title[data-v-0c27a779]{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:8px}.modal-desc[data-v-0c27a779]{font-size:var(--text-body);color:var(--neutral-text-secondary);margin-bottom:24px}.modal-actions[data-v-0c27a779]{display:flex;gap:12px;justify-content:center}.modal-btn[data-v-0c27a779]{height:38px;padding:0 18px;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.modal-btn.primary[data-v-0c27a779]{background:var(--color-primary);color:#fff;border:none}.modal-btn.primary[data-v-0c27a779]:hover{background:var(--color-primary-dark)}.modal-btn.secondary[data-v-0c27a779]{background:#fff;color:var(--color-primary);border:1px solid var(--color-primary)}.modal-btn.secondary[data-v-0c27a779]:hover{background:var(--color-primary-light)}.modal-enter-active[data-v-0c27a779]{transition:all .24s var(--ease-out)}.modal-leave-active[data-v-0c27a779]{transition:all .2s var(--ease-out)}.modal-enter-from[data-v-0c27a779],.modal-leave-to[data-v-0c27a779]{opacity:0;transform:scale(.95)}.hub-page[data-v-a61e66f4]{background:var(--neutral-bg)}.hub-content[data-v-a61e66f4]{display:flex;align-items:center;justify-content:center;gap:24px;padding:60px 24px;flex-wrap:wrap}.sub-card[data-v-a61e66f4]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:all var(--duration-fast) var(--ease-out);cursor:pointer;max-width:360px;width:100%}.sub-card[data-v-a61e66f4]:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-4px)}.card-inner[data-v-a61e66f4]{padding:28px;display:flex;flex-direction:column}.sub-tag[data-v-a61e66f4]{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-semibold);margin-bottom:14px;background:var(--state-success-light);color:var(--state-success-dark);align-self:flex-start}.card-icon[data-v-a61e66f4]{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:#fff;margin-bottom:14px}.plc-icon[data-v-a61e66f4]{background:#b45309}.data-icon[data-v-a61e66f4]{background:#0e7490}.sub-title[data-v-a61e66f4]{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:8px}.sub-desc[data-v-a61e66f4]{font-size:var(--text-body);color:var(--neutral-text-secondary);line-height:1.5;margin-bottom:18px}.sub-btn[data-v-a61e66f4]{display:inline-flex;align-items:center;justify-content:center;width:100%;height:40px;padding:0 20px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.sub-btn[data-v-a61e66f4]:hover{background:var(--color-primary-dark)}.sub-btn[data-v-a61e66f4]:active{transform:scale(.97)}.plc-workbench[data-v-25cc4ca0]{display:flex;flex-direction:column;height:100%;min-height:0;background:#1e1e1e}.plc-toolbar[data-v-25cc4ca0]{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#252526;border-bottom:1px solid #3c3c3c;flex-shrink:0}.toolbar-left[data-v-25cc4ca0]{display:flex;align-items:center;gap:10px}.tool-title[data-v-25cc4ca0]{font-size:13px;font-weight:var(--weight-semibold);color:#d4d4d4;letter-spacing:.04em}.tool-chip[data-v-25cc4ca0]{font-size:11px;color:#8a8a8a;padding:2px 8px;border:1px solid #3c3c3c;border-radius:var(--radius-full)}.toolbar-right[data-v-25cc4ca0]{display:flex;align-items:center;gap:12px}.compile-error[data-v-25cc4ca0]{font-size:12px;color:#f48771;max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compile-ok[data-v-25cc4ca0]{font-size:12px;color:#4ec9b0}.run-btn[data-v-25cc4ca0]{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 16px;border:none;border-radius:var(--radius-sm);background:#2d6a4f;color:#fff;font-size:12px;font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.run-btn[data-v-25cc4ca0]:hover{background:#3d8a6f}.run-btn.running[data-v-25cc4ca0]{background:#7f1d1d}.run-btn.running[data-v-25cc4ca0]:hover{background:#991b1b}.run-dot[data-v-25cc4ca0]{width:8px;height:8px;border-radius:var(--radius-full);background:#a7f3d0}.run-btn.running .run-dot[data-v-25cc4ca0]{background:#fca5a5;animation:blink-25cc4ca0 1s infinite}@keyframes blink-25cc4ca0{50%{opacity:.3}}.plc-main[data-v-25cc4ca0]{display:flex;flex:1;min-height:0}.editor-col[data-v-25cc4ca0]{width:300px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid #3c3c3c}.editor-header[data-v-25cc4ca0]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#252526;border-bottom:1px solid #3c3c3c;flex-shrink:0}.editor-label[data-v-25cc4ca0]{font-size:11px;font-weight:var(--weight-semibold);color:#8a8a8a;letter-spacing:.06em}.scan-badge[data-v-25cc4ca0]{font-size:11px;color:#fbbf24;font-family:var(--font-mono)}.ghost-btn[data-v-25cc4ca0]{background:none;border:1px solid #3c3c3c;color:#9a9a9a;font-size:11px;padding:3px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.ghost-btn[data-v-25cc4ca0]:hover{color:#d4d4d4;border-color:#5a5a5a}.code-textarea[data-v-25cc4ca0]{flex:1;min-height:0;resize:none;border:none;outline:none;background:#1e1e1e;color:#d4d4d4;font-family:var(--font-mono);font-size:13px;line-height:1.8;padding:12px}.mnemonic-help[data-v-25cc4ca0]{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-top:1px solid #3c3c3c;flex-shrink:0}.mnemonic-help span[data-v-25cc4ca0]{font-size:10px;color:#6a6a6a;padding:2px 6px;background:#2a2a2b;border-radius:3px}.ladder-col[data-v-25cc4ca0]{flex:1;min-width:0;display:flex;flex-direction:column}.ladder-scroll[data-v-25cc4ca0]{flex:1;min-height:0;overflow:auto;background:#1e1e1e}.ladder-svg[data-v-25cc4ca0]{display:block}.power-bus[data-v-25cc4ca0]{stroke:#888;stroke-width:3}.ladder-wire[data-v-25cc4ca0]{stroke:#777;stroke-width:2;fill:none}.ladder-wire.live[data-v-25cc4ca0]{stroke:#fbbf24}.junction-dot[data-v-25cc4ca0]{fill:#777}.junction-dot.live[data-v-25cc4ca0]{fill:#fbbf24}.contact-pin[data-v-25cc4ca0]{stroke:#999;stroke-width:2;background:#1e1e1e}.contact-pin.live[data-v-25cc4ca0]{stroke:#fbbf24}.contact-label[data-v-25cc4ca0]{fill:#aaa;font-size:11px;font-family:var(--font-mono)}.contact-label.live[data-v-25cc4ca0]{fill:#fbbf24}.coil-circle[data-v-25cc4ca0]{fill:#1e1e1e;stroke:#999;stroke-width:2}.coil-circle.live[data-v-25cc4ca0]{stroke:#4ec9b0;fill:#4ec9b02e}.coil-timer-box[data-v-25cc4ca0]{fill:#1e1e1e;stroke:#999;stroke-width:2}.coil-timer-box.live[data-v-25cc4ca0]{stroke:#4ec9b0;fill:#4ec9b02e}.coil-label[data-v-25cc4ca0]{fill:#ccc;font-size:11px;font-family:var(--font-mono)}.coil-label.live[data-v-25cc4ca0]{fill:#4ec9b0}.ladder-empty[data-v-25cc4ca0]{fill:#555;font-size:13px}.io-panel[data-v-25cc4ca0]{display:flex;align-items:stretch;gap:20px;padding:10px 16px;background:#252526;border-top:1px solid #3c3c3c;flex-shrink:0;overflow-x:auto}.io-group[data-v-25cc4ca0]{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.io-title[data-v-25cc4ca0]{font-size:10px;font-weight:var(--weight-semibold);color:#8a8a8a;letter-spacing:.06em}.io-list[data-v-25cc4ca0]{display:flex;gap:8px;align-items:center}.io-switch[data-v-25cc4ca0]{width:40px;height:30px;border:1px solid #3c3c3c;border-radius:var(--radius-sm);background:#1e1e1e;color:#8a8a8a;font-size:12px;font-family:var(--font-mono);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.io-switch[data-v-25cc4ca0]:hover{border-color:#5a5a5a}.io-switch.on[data-v-25cc4ca0]{background:#2d6a4f;border-color:#3d8a6f;color:#d8f3dc}.io-lamp[data-v-25cc4ca0]{width:40px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #3c3c3c;border-radius:var(--radius-sm);background:#1a1a1a;color:#555;font-size:12px;font-family:var(--font-mono);transition:all var(--duration-fast) var(--ease-out)}.io-lamp.on[data-v-25cc4ca0]{background:#4ec9b0;border-color:#4ec9b0;color:#063f36;box-shadow:0 0 10px #4ec9b080}.timers .io-list[data-v-25cc4ca0]{gap:14px}.timer-item[data-v-25cc4ca0]{display:flex;align-items:center;gap:6px}.timer-name[data-v-25cc4ca0]{font-size:11px;color:#8a8a8a;font-family:var(--font-mono)}.timer-bar[data-v-25cc4ca0]{width:70px;height:6px;border-radius:var(--radius-full);background:#1a1a1a;overflow:hidden}.timer-fill[data-v-25cc4ca0]{height:100%;background:#fbbf24;transition:width .1s linear}.timer-value[data-v-25cc4ca0]{font-size:10px;color:#6a6a6a;font-family:var(--font-mono)}.workspace[data-v-28d9d853]{display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden;background:var(--neutral-bg)}.ws-body[data-v-28d9d853]{display:flex;flex:1;min-height:0;overflow:hidden}.splitter-col[data-v-28d9d853]{width:3px;flex-shrink:0;cursor:col-resize;background:var(--neutral-border-light);transition:background .15s;position:relative}.splitter-col[data-v-28d9d853]:hover,.splitter-col.splitter-active[data-v-28d9d853]{background:#60a5fa}.splitter-col[data-v-28d9d853]:before{content:"";position:absolute;inset:0 -4px}.plc-area[data-v-28d9d853]{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column}.plc-canvas[data-v-28d9d853]{flex:1;min-height:0;overflow:hidden}.info-panel[data-v-28d9d853]{flex-shrink:0;background:var(--neutral-card);border-left:1px solid var(--neutral-border-light);overflow-y:auto;display:flex;flex-direction:column}.info-header[data-v-28d9d853]{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 16px;background:#f3f3f3;border-bottom:1px solid var(--neutral-border-light);flex-shrink:0}.info-label[data-v-28d9d853]{font-size:12px;font-weight:var(--weight-semibold);color:#424242;letter-spacing:.04em}.info-progress[data-v-28d9d853]{font-size:11px;color:var(--color-primary-dark);font-family:var(--font-mono)}.info-body[data-v-28d9d853]{padding:16px;display:flex;flex-direction:column;gap:12px}.task-item[data-v-28d9d853]{display:flex;gap:10px;padding:12px;border:1px solid var(--neutral-border-light);border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-out)}.task-item.passed[data-v-28d9d853]{border-color:var(--state-success);background:var(--state-success-light)}.task-check[data-v-28d9d853]{flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:1px solid var(--neutral-border-light);font-size:12px;color:var(--neutral-text-tertiary);font-weight:var(--weight-semibold)}.task-item.passed .task-check[data-v-28d9d853]{background:var(--state-success);border-color:var(--state-success);color:#fff}.task-title[data-v-28d9d853]{font-size:13px;font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:4px}.task-desc[data-v-28d9d853]{font-size:12px;color:var(--neutral-text-secondary);line-height:1.6}.task-tip[data-v-28d9d853]{padding:10px 12px;background:var(--color-primary-50);border-radius:var(--radius-sm)}.task-tip p[data-v-28d9d853]{font-size:12px;color:var(--color-primary-dark);line-height:1.6}.complete-btn[data-v-28d9d853]{margin-top:8px;padding:10px 24px;background:var(--state-success);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.complete-btn[data-v-28d9d853]:hover:not(:disabled){background:var(--state-success-dark)}.complete-btn[data-v-28d9d853]:active:not(:disabled){transform:scale(.97)}.complete-btn[data-v-28d9d853]:disabled{background:var(--neutral-border-light);color:var(--neutral-text-disabled);cursor:not-allowed}.dataflow-wrapper[data-v-da04823a]{display:flex;height:100%;overflow:hidden}.device-panel[data-v-da04823a]{width:84px;flex-shrink:0;background:#252526;border-right:1px solid #3c3c3c;padding:12px 8px;display:flex;flex-direction:column;gap:12px;overflow-y:auto}.device-item[data-v-da04823a]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:var(--radius-sm);cursor:grab;transition:background var(--duration-fast) var(--ease-out)}.device-item[data-v-da04823a]:hover{background:#ffffff14}.device-item[data-v-da04823a]:active{cursor:grabbing}.device-label[data-v-da04823a]{font-size:10px;color:#aaa;white-space:nowrap}.svg-area[data-v-da04823a]{flex:1;position:relative;background:#2b2b2b;min-width:0;overflow:hidden}.canvas-hint[data-v-da04823a]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#666;font-size:14px;pointer-events:none}.svg-area svg[data-v-da04823a]{display:block}.port-dot[data-v-da04823a]{cursor:pointer;transition:fill var(--duration-fast) var(--ease-out)}.port-dot[data-v-da04823a]:hover{fill:#7dd3fc}.link-selected[data-v-da04823a]{stroke:#f59e0b;stroke-width:2.5}.flow-dot[data-v-da04823a]{filter:drop-shadow(0 0 4px rgba(56,189,248,.8))}.delete-cross[data-v-da04823a]{cursor:pointer}.delete-cross[data-v-da04823a]:hover{stroke:#f44;stroke-width:3}.flow-actions[data-v-da04823a]{position:absolute;bottom:16px;right:16px;display:flex;gap:10px}.validate-btn[data-v-da04823a]{padding:8px 18px;background:#38bdf8;color:#062a3a;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);box-shadow:0 2px 8px #38bdf859}.validate-btn[data-v-da04823a]:hover{background:#7dd3fc;transform:translateY(-1px)}.validate-btn[data-v-da04823a]:active{transform:scale(.97)}.run-btn[data-v-da04823a]{padding:8px 18px;background:#2d6a4f;color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);box-shadow:0 2px 8px #2d6a4f66}.run-btn[data-v-da04823a]:hover{background:#3d8a6f}.run-btn.running[data-v-da04823a]{background:#7f1d1d}.run-btn.running[data-v-da04823a]:hover{background:#991b1b}.data-overlay[data-v-da04823a]{position:absolute;top:14px;right:14px;width:250px;background:#111827eb;border:1px solid #374151;border-radius:var(--radius-md);padding:12px 14px;color:#d1d5db;z-index:12;max-height:320px;overflow-y:auto}.data-title[data-v-da04823a]{font-size:11px;font-weight:var(--weight-semibold);letter-spacing:.06em;color:#9ca3af;margin-bottom:8px}.data-rows[data-v-da04823a]{display:flex;flex-direction:column;gap:5px;margin-bottom:8px}.data-row[data-v-da04823a]{display:flex;align-items:baseline;gap:8px;font-family:var(--font-mono);font-size:12px}.data-name[data-v-da04823a]{color:#9ca3af;width:48px}.data-value[data-v-da04823a]{color:#4ec9b0;font-weight:var(--weight-semibold)}.data-cycle[data-v-da04823a]{margin-left:auto;color:#6b7280;font-size:10px}.data-gateway[data-v-da04823a]{font-size:11px;color:#93c5fd;margin-bottom:6px;font-family:var(--font-mono)}.data-payload[data-v-da04823a]{font-size:10px;color:#86efac;background:#064e3b66;border-radius:var(--radius-sm);padding:6px 8px;font-family:var(--font-mono);word-break:break-all;line-height:1.5}.port-selector-overlay[data-v-da04823a]{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:20}.port-selector[data-v-da04823a]{background:var(--neutral-card);border-radius:var(--radius-md);padding:24px;min-width:260px;box-shadow:var(--shadow-modal)}.port-selector-title[data-v-da04823a]{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:16px;text-align:center}.port-selector-list[data-v-da04823a]{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.port-option[data-v-da04823a]{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--neutral-border-light);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.port-option[data-v-da04823a]:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.port-option.port-used[data-v-da04823a]{opacity:.5;cursor:not-allowed}.port-dot-small[data-v-da04823a]{width:8px;height:8px;border-radius:var(--radius-full);background:#38bdf8;flex-shrink:0}.port-opt-name[data-v-da04823a]{font-size:var(--text-body);font-weight:var(--weight-semibold);color:var(--neutral-text-main);font-family:var(--font-mono)}.port-opt-status[data-v-da04823a]{margin-left:auto;font-size:var(--text-caption);color:var(--neutral-text-tertiary)}.port-cancel[data-v-da04823a]{width:100%;height:34px;background:var(--neutral-hover);color:var(--neutral-text-secondary);border:none;border-radius:var(--radius-sm);font-size:var(--text-body);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.port-cancel[data-v-da04823a]:hover{background:var(--neutral-border-light)}.validation-popup[data-v-da04823a]{position:absolute;bottom:64px;left:16px;right:200px;padding:12px 16px;border-radius:var(--radius-sm);font-size:var(--text-body);z-index:15;display:flex;align-items:flex-start;gap:8px;box-shadow:var(--shadow-card)}.validation-popup.pass[data-v-da04823a]{background:#064e3b;color:#6ee7b7;border:1px solid #065f46}.validation-popup.fail[data-v-da04823a]{background:#7f1d1d;color:#fca5a5;border:1px solid #991b1b}.val-icon[data-v-da04823a]{flex-shrink:0}.val-errors[data-v-da04823a]{flex:1}.val-error-item[data-v-da04823a]{margin-bottom:4px;font-size:13px}.val-error-item[data-v-da04823a]:last-child{margin-bottom:0}.val-close[data-v-da04823a]{flex-shrink:0;background:none;border:none;color:inherit;cursor:pointer;font-size:14px;opacity:.7;padding:0;line-height:1}.val-close[data-v-da04823a]:hover{opacity:1}.fade-enter-active[data-v-da04823a],.fade-leave-active[data-v-da04823a]{transition:opacity .3s ease}.fade-enter-from[data-v-da04823a],.fade-leave-to[data-v-da04823a]{opacity:0}.config-panel[data-v-98179514]{height:100%;background:var(--neutral-card);border-left:1px solid var(--neutral-border-light);display:flex;flex-direction:column;overflow:hidden}.config-header[data-v-98179514]{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 16px;background:#f3f3f3;border-bottom:1px solid var(--neutral-border-light);flex-shrink:0}.config-title[data-v-98179514]{font-size:12px;font-weight:var(--weight-semibold);color:#424242;letter-spacing:.04em}.close-btn[data-v-98179514]{background:none;border:none;color:var(--neutral-text-tertiary);cursor:pointer;font-size:13px;padding:2px 6px}.close-btn[data-v-98179514]:hover{color:var(--neutral-text-main)}.config-body[data-v-98179514]{flex:1;overflow-y:auto;padding:18px 16px;display:flex;flex-direction:column;gap:14px}.field[data-v-98179514]{display:flex;flex-direction:column;gap:5px}.field-row[data-v-98179514]{display:flex;gap:10px}.field-row .field[data-v-98179514]{flex:1}.field-label[data-v-98179514]{font-size:12px;color:var(--neutral-text-secondary);font-weight:var(--weight-semibold)}.field-input[data-v-98179514]{height:32px;padding:0 10px;border:1px solid var(--neutral-border-light);border-radius:var(--radius-sm);font-size:13px;color:var(--neutral-text-main);background:#fff;outline:none;transition:border-color var(--duration-fast) var(--ease-out)}.field-input[data-v-98179514]:focus{border-color:var(--color-primary)}.field-input.mono[data-v-98179514]{font-family:var(--font-mono)}.field-tip[data-v-98179514]{font-size:12px;color:var(--neutral-text-tertiary);line-height:1.6;background:var(--color-primary-50);border-radius:var(--radius-sm);padding:8px 10px}.config-footer[data-v-98179514]{display:flex;gap:10px;padding:14px 16px;border-top:1px solid var(--neutral-border-light);flex-shrink:0}.btn[data-v-98179514]{flex:1;height:34px;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);border:none}.btn.primary[data-v-98179514]{background:var(--color-primary);color:#fff}.btn.primary[data-v-98179514]:hover{background:var(--color-primary-dark)}.btn.danger[data-v-98179514]{background:#fff;color:#b91c1c;border:1px solid #fecaca}.btn.danger[data-v-98179514]:hover{background:#fef2f2}.workspace[data-v-d96dc74b]{display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden;background:var(--neutral-bg)}.ws-body[data-v-d96dc74b]{display:flex;flex:1;min-height:0;overflow:hidden}.splitter-col[data-v-d96dc74b]{width:3px;flex-shrink:0;cursor:col-resize;background:var(--neutral-border-light);transition:background .15s;position:relative}.splitter-col[data-v-d96dc74b]:hover,.splitter-col.splitter-active[data-v-d96dc74b]{background:#60a5fa}.splitter-col[data-v-d96dc74b]:before{content:"";position:absolute;inset:0 -4px}.flow-area[data-v-d96dc74b]{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column}.flow-canvas[data-v-d96dc74b]{flex:1;min-height:0;overflow:hidden}.right-col[data-v-d96dc74b]{flex-shrink:0;overflow:hidden;display:flex;flex-direction:column}.info-panel[data-v-d96dc74b]{flex:1;background:var(--neutral-card);border-left:1px solid var(--neutral-border-light);overflow-y:auto;display:flex;flex-direction:column}.info-header[data-v-d96dc74b]{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 16px;background:#f3f3f3;border-bottom:1px solid var(--neutral-border-light);flex-shrink:0}.info-label[data-v-d96dc74b]{font-size:12px;font-weight:var(--weight-semibold);color:#424242;letter-spacing:.04em}.info-progress[data-v-d96dc74b]{font-size:11px;color:var(--color-primary-dark);font-family:var(--font-mono)}.info-body[data-v-d96dc74b]{padding:16px;display:flex;flex-direction:column;gap:12px}.task-item[data-v-d96dc74b]{display:flex;gap:10px;padding:12px;border:1px solid var(--neutral-border-light);border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-out)}.task-item.passed[data-v-d96dc74b]{border-color:var(--state-success);background:var(--state-success-light)}.task-check[data-v-d96dc74b]{flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:1px solid var(--neutral-border-light);font-size:12px;color:var(--neutral-text-tertiary);font-weight:var(--weight-semibold)}.task-item.passed .task-check[data-v-d96dc74b]{background:var(--state-success);border-color:var(--state-success);color:#fff}.task-title[data-v-d96dc74b]{font-size:13px;font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:4px}.task-desc[data-v-d96dc74b]{font-size:12px;color:var(--neutral-text-secondary);line-height:1.6}.task-tip[data-v-d96dc74b]{padding:10px 12px;background:var(--color-primary-50);border-radius:var(--radius-sm)}.task-tip p[data-v-d96dc74b]{font-size:12px;color:var(--color-primary-dark);line-height:1.6}.complete-btn[data-v-d96dc74b]{margin-top:8px;padding:10px 24px;background:var(--state-success);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--text-body);font-weight:var(--weight-semibold);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.complete-btn[data-v-d96dc74b]:hover:not(:disabled){background:var(--state-success-dark)}.complete-btn[data-v-d96dc74b]:active:not(:disabled){transform:scale(.97)}.complete-btn[data-v-d96dc74b]:disabled{background:var(--neutral-border-light);color:var(--neutral-text-disabled);cursor:not-allowed}.manual[data-v-63502453]{background:var(--neutral-bg);min-height:100dvh}.hero[data-v-63502453]{padding:120px 0 96px;background:var(--neutral-bg)}.hero-inner[data-v-63502453]{max-width:760px;margin:0 auto;padding:0 40px}.hero-badge[data-v-63502453]{display:inline-block;padding:4px 14px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-semibold);letter-spacing:.04em;color:var(--color-primary-600);background:var(--color-primary-100);margin-bottom:32px}.hero-title[data-v-63502453]{font-size:48px;font-weight:var(--weight-bold);line-height:1.15;color:var(--neutral-text-main);letter-spacing:-.025em;margin-bottom:24px}.hero-desc[data-v-63502453]{font-size:var(--text-body-l);line-height:1.75;color:var(--neutral-text-secondary);max-width:560px;margin-bottom:48px}.hero-meta[data-v-63502453]{font-size:var(--text-caption);color:var(--neutral-text-disabled)}.manual-body[data-v-63502453]{max-width:1040px;margin:0 auto;padding:0 40px}.chapter[data-v-63502453]{padding:80px 0 64px;border-top:1px solid var(--neutral-border-light)}.chapter[data-v-63502453]:first-of-type{border-top:none}.chapter-num[data-v-63502453]{font-size:var(--text-caption);font-weight:var(--weight-bold);color:var(--color-primary-600);letter-spacing:.06em;text-transform:uppercase}.chapter-title[data-v-63502453]{font-size:32px;font-weight:var(--weight-bold);line-height:1.2;color:var(--neutral-text-main);margin:8px 0 20px}.chapter-lead[data-v-63502453]{font-size:var(--text-body-l);line-height:1.7;color:var(--neutral-text-secondary);max-width:620px;margin-bottom:40px}.bento-grid[data-v-63502453]{display:grid;gap:20px;margin-bottom:40px}.bento-grid.cols-2[data-v-63502453]{grid-template-columns:1fr 1fr}.bezel-out[data-v-63502453]{padding:1.5px;border-radius:18px;background:var(--neutral-border-light);transition:background var(--duration-normal) var(--ease-out)}.bezel-in[data-v-63502453]{background:var(--neutral-card);border-radius:16px;padding:28px;box-shadow:0 1px 2px #00000008;height:100%}.bezel-in h4[data-v-63502453]{font-size:var(--text-body-l);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin-bottom:8px}.bezel-in p[data-v-63502453]{font-size:var(--text-body);line-height:1.65;color:var(--neutral-text-secondary);margin:0;max-width:52ch}.feature-head[data-v-63502453]{display:flex;align-items:center;gap:10px;margin-bottom:8px}.feature-head h4[data-v-63502453]{margin-bottom:0}.feature-dot[data-v-63502453]{flex-shrink:0;width:10px;height:10px;border-radius:50%;background:var(--color-primary)}.dot-amber[data-v-63502453]{background:var(--color-primary)}.dot-green[data-v-63502453]{background:var(--state-success)}.dot-coral[data-v-63502453]{background:var(--state-warning)}.tagline-block[data-v-63502453]{text-align:center;padding:48px 32px;background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-md)}.tagline-block p[data-v-63502453]{font-size:22px;font-weight:var(--weight-bold);color:var(--neutral-text-main);margin-bottom:8px}.tagline-block span[data-v-63502453]{font-size:var(--text-body);color:var(--neutral-text-secondary)}.dash-grid[data-v-63502453]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-bottom:40px}.dash-grid .bezel-card.stretch[data-v-63502453]{grid-column:1 / -1}.level-grid[data-v-63502453]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-bottom:32px}.lv-tag[data-v-63502453]{display:inline-block;padding:3px 12px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-bold);margin-bottom:12px}.lv-tag.novice[data-v-63502453]{background:var(--color-primary-100);color:var(--color-primary-800)}.lv-tag.intermediate[data-v-63502453]{background:var(--state-success-light);color:var(--state-success-dark)}.lv-tag.expert[data-v-63502453]{background:var(--color-primary-50);color:var(--color-primary-600)}.lv-msg[data-v-63502453]{font-size:var(--text-body);line-height:1.65;color:var(--neutral-text-main);font-style:italic;margin:0}.callout[data-v-63502453]{background:var(--color-primary-50);border-left:4px solid var(--color-primary);padding:18px 24px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-bottom:40px}.callout.warm[data-v-63502453]{background:var(--color-primary-100);border-left-color:var(--color-primary-600)}.callout p[data-v-63502453]{margin:0;font-size:var(--text-body);color:var(--neutral-text-secondary)}.callout strong[data-v-63502453]{color:var(--neutral-text-main)}.mate-why h3[data-v-63502453]{color:var(--neutral-text-main);font-size:18px;font-weight:var(--weight-semibold);margin-bottom:8px}.manual-list[data-v-63502453]{margin:8px 0 0;padding-left:20px;color:var(--neutral-text-secondary);line-height:1.8}.workflow[data-v-63502453]{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:32px}.step-head[data-v-63502453]{display:flex;align-items:center;gap:12px;margin-bottom:8px}.step-head h4[data-v-63502453]{margin:0}.step-num[data-v-63502453]{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-primary-100);color:var(--color-primary-600);font-size:var(--text-caption);font-weight:var(--weight-bold)}.sub-title[data-v-63502453]{font-size:var(--text-h3);font-weight:var(--weight-semibold);color:var(--neutral-text-main);margin:48px 0 20px}.state-flow[data-v-63502453]{display:flex;align-items:center;justify-content:center;gap:16px;padding:28px;background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-md);margin-bottom:40px;flex-wrap:wrap}.state-node[data-v-63502453]{display:inline-flex;align-items:center;padding:8px 20px;border-radius:var(--radius-full);font-size:var(--text-body);font-weight:var(--weight-semibold)}.state-node.observe[data-v-63502453]{background:var(--color-primary-100);color:var(--color-primary-800)}.state-node.think[data-v-63502453]{background:var(--color-primary-50);color:var(--color-primary-600)}.state-node.recog[data-v-63502453]{background:var(--state-success-light);color:var(--state-success-dark)}.state-arrow[data-v-63502453]{font-size:var(--text-h3);color:var(--neutral-text-disabled);line-height:1}.rule-table[data-v-63502453]{border:1px solid var(--neutral-border-light);border-radius:var(--radius-md);overflow:hidden;margin-bottom:32px}.rule-row[data-v-63502453]{display:grid;grid-template-columns:1.5fr .7fr 2fr;gap:12px;padding:14px 20px;font-size:var(--text-body);border-bottom:1px solid var(--neutral-border-light);align-items:center}.rule-row[data-v-63502453]:last-child{border-bottom:none}.rule-row.rule-header[data-v-63502453]{background:var(--color-primary-50);font-weight:var(--weight-semibold);color:var(--neutral-text-main)}.rule-row span[data-v-63502453]{line-height:1.5}.rule-row span[data-v-63502453]:nth-child(3){color:var(--neutral-text-secondary)}.badge[data-v-63502453]{display:inline-block;padding:2px 10px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-bold);white-space:nowrap;justify-self:start}.badge.l1[data-v-63502453]{background:var(--color-primary-100);color:var(--color-primary-800)}.badge.l2[data-v-63502453]{background:var(--state-success-light);color:var(--state-success-dark)}.badge.l3[data-v-63502453]{background:var(--state-warning-light);color:var(--state-warning-dark)}.badge.l4[data-v-63502453]{background:var(--state-error-light);color:var(--state-error-dark)}.page-list[data-v-63502453]{display:flex;flex-direction:column;gap:16px;margin-bottom:40px}.page-item[data-v-63502453]{display:flex;align-items:flex-start;gap:20px}.route-tag[data-v-63502453]{flex-shrink:0;padding:4px 12px;border-radius:6px;font-family:var(--font-mono);font-size:var(--text-caption);background:var(--neutral-hover);color:var(--neutral-text-disabled)}.page-item h4[data-v-63502453]{margin-bottom:4px}.start-steps[data-v-63502453]{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.stagger-item[data-v-63502453]{animation:fadeUp-63502453 var(--duration-slow) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 80ms)}code[data-v-63502453]{font-family:var(--font-mono);font-size:.85em;padding:2px 6px;border-radius:4px;background:var(--neutral-hover);color:var(--neutral-text-main)}@keyframes fadeUp-63502453{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.hero[data-v-63502453]{padding:80px 0 64px}.hero-inner[data-v-63502453]{padding:0 24px}.hero-title[data-v-63502453]{font-size:34px}.manual-body[data-v-63502453]{padding:0 24px}.chapter[data-v-63502453]{padding:56px 0 48px}.chapter-title[data-v-63502453]{font-size:26px}.bento-grid.cols-2[data-v-63502453],.workflow[data-v-63502453],.dash-grid[data-v-63502453],.level-grid[data-v-63502453]{grid-template-columns:1fr}.rule-row[data-v-63502453]{grid-template-columns:1fr;gap:4px;padding:12px 16px}.rule-row.rule-header[data-v-63502453]{display:none}.rule-row span[data-v-63502453]{padding:2px 0}.state-flow[data-v-63502453]{gap:8px;padding:20px}}@media (max-width: 480px){.hero[data-v-63502453]{padding:60px 0 48px}.hero-title[data-v-63502453]{font-size:28px}.hero-desc[data-v-63502453]{font-size:var(--text-body)}.hero-inner[data-v-63502453],.manual-body[data-v-63502453]{padding:0 16px}.bezel-in[data-v-63502453]{padding:20px}}.notfound-page[data-v-a8e1c07b]{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:48px 24px;background:var(--neutral-bg)}.notfound-card[data-v-a8e1c07b]{background:var(--neutral-card);border:1px solid var(--neutral-border-light);border-radius:var(--radius-lg);padding:48px;max-width:460px;width:100%;text-align:center;box-shadow:var(--shadow-card)}.notfound-code[data-v-a8e1c07b]{font-size:72px;font-weight:800;line-height:1;letter-spacing:2px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.notfound-title[data-v-a8e1c07b]{margin-top:16px;font-size:20px;font-weight:700;color:var(--neutral-text-main)}.notfound-desc[data-v-a8e1c07b]{margin-top:8px;font-size:14px;line-height:1.7;color:var(--neutral-text-secondary)}.notfound-actions[data-v-a8e1c07b]{margin-top:28px;display:flex;gap:12px;justify-content:center}.btn-primary[data-v-a8e1c07b],.btn-ghost[data-v-a8e1c07b]{padding:10px 24px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;cursor:pointer;transition:background var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.btn-primary[data-v-a8e1c07b]{background:var(--color-primary);color:#fff;border:none}.btn-primary[data-v-a8e1c07b]:hover{background:var(--color-primary-dark)}.btn-ghost[data-v-a8e1c07b]{background:transparent;color:var(--neutral-text-main);border:1px solid var(--neutral-border-light)}.btn-ghost[data-v-a8e1c07b]:hover{background:var(--neutral-hover)}.btn-primary[data-v-a8e1c07b]:active,.btn-ghost[data-v-a8e1c07b]:active{transform:scale(.97)}:root{--color-primary: #F59E0B;--color-primary-dark: #D97706;--color-primary-light: #FEF3C7;--color-primary-50: #FFFBEB;--color-primary-100: #FEF3C7;--color-primary-200: #FDE68A;--color-primary-300: #FCD34D;--color-primary-400: #FBBF24;--color-primary-500: #F59E0B;--color-primary-600: #D97706;--color-primary-700: #B45309;--color-primary-800: #92400E;--color-primary-900: #78350F;--state-success: #10B981;--state-success-light: #D1FAE5;--state-success-dark: #059669;--state-warning: #F97316;--state-warning-light: #FFF7ED;--state-warning-dark: #EA580C;--state-error: #EF4444;--state-error-light: #FEE2E2;--state-error-dark: #DC2626;--state-info: #3B82F6;--state-info-light: #DBEAFE;--state-info-dark: #2563EB;--neutral-bg: #FAFAF9;--neutral-card: #FFFFFF;--neutral-hover: #F5F5F4;--neutral-border-light: #E7E5E4;--neutral-border-heavy: #D6D3D1;--neutral-text-main: #1C1917;--neutral-text-secondary: #78716C;--neutral-text-disabled: #A8A29E;--gradient-decor: linear-gradient(135deg, rgba(245, 158, 11, .06) 0%, rgba(253, 186, 116, .04) 100%);--font-sans: "Microsoft YaHei", "PingFang SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: Monaco, "Cascadia Code", "Fira Code", Consolas, "PingFang SC", "Microsoft YaHei", monospace;--text-h1: 28px;--text-h2: 22px;--text-h3: 18px;--text-body-l: 16px;--text-body: 14px;--text-caption: 12px;--text-code: 13px;--weight-bold: 700;--weight-semibold: 600;--weight-regular: 400;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .06);--shadow-card-hover: 0 4px 12px rgba(0, 0, 0, .08);--shadow-bubble: 0 2px 8px rgba(0, 0, 0, .08);--shadow-modal: 0 16px 48px rgba(0, 0, 0, .15);--mate-lv1: #3B82F6;--mate-lv2: #10B981;--mate-lv3: #F97316;--mate-lv4: #EF4444;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .2s;--duration-normal: .3s;--duration-slow: .4s;--duration-radar: .8s}@media (prefers-reduced-motion: reduce){:root{--duration-fast: 0ms;--duration-normal: 0ms;--duration-slow: 0ms;--duration-radar: 0ms}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background-color:var(--neutral-bg);color:var(--neutral-text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}#app{min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit}input,textarea{font-family:inherit;font-size:inherit}img{max-width:100%;display:block}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@media (max-width: 1024px){html{font-size:15px}}@media (max-width: 768px){html{font-size:14px}}@media (max-width: 480px){html{font-size:13px}}
