:root{font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#1b2948;background:#f6f7fc;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{opacity:.48;cursor:not-allowed}input,select,textarea{outline:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ad9ffb;outline-offset:2px}
.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:#101c37;color:#dee5ff;display:flex;flex-direction:column;padding:26px 16px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;padding:0 9px 29px}.brand-icon{font-size:27px;background:linear-gradient(145deg,#8e7cf2,#5542cc);color:white;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;box-shadow:0 7px 22px #0003}.brand strong{display:block;color:#fff;font-size:20px;letter-spacing:-.6px}.brand small{display:block;font-size:10px;letter-spacing:1.7px;color:#97a7d3;margin-top:3px}.nav-head{font-size:11px;color:#7786ad;letter-spacing:1.7px;margin:17px 14px 9px}.side-nav{display:grid;gap:5px}.side-nav a{display:flex;align-items:center;gap:14px;padding:12px 15px;border-radius:10px;color:#b9c6e4;font-size:13px;font-weight:600;transition:.16s}.side-nav a span{font-size:18px;min-width:19px;text-align:center}.side-nav a:hover,.side-nav a.active{background:#29345e;color:#fff}.side-nav a.active{box-shadow:inset 3px 0 #8d78ff}.side-foot{display:flex;gap:10px;margin-top:auto;padding:18px 12px 2px;font-size:11px;color:#a5b2d2;line-height:1.8}.side-foot small{color:#7384af}.side-foot-dot{margin-top:6px;width:9px;height:9px;border-radius:50%;background:#47dcb5;box-shadow:0 0 0 4px #47dcb51c;flex-shrink:0}
.workspace{min-width:0;display:flex;flex-direction:column}.topbar{height:69px;background:#fff;border-bottom:1px solid #ebedf5;padding:0 39px;display:flex;justify-content:space-between;align-items:center;gap:20px}.breadcrumb{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:650;color:#64728e}.breadcrumb-dot{height:7px;width:7px;background:#31bc92;border-radius:50%}.slash{color:#b1bad0;margin:0 2px}.header-actions{display:flex;align-items:center;gap:21px}.server-status{font-size:11px;color:#17a887;white-space:nowrap}.server-status.offline{color:#d15f5f}.user-button{background:#f0edff;color:#6350dc;border:1px solid #e1daff;border-radius:11px;padding:9px 14px;font-size:12px;font-weight:750}.page{flex:1;width:min(1190px,100%);padding:33px 40px 48px;margin:0 auto}.footer{font-size:11px;color:#8993ae;padding:16px 39px 23px;display:flex;justify-content:space-between;gap:8px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2.2px;color:#7562ef;margin:0 0 11px}.page-title{font-size:28px;margin:3px 0 10px;letter-spacing:-.65px;color:#172344}.subtitle{font-size:13px;color:#7c8aa5;line-height:1.9;margin:0 0 25px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.page-head .subtitle{margin:0}.display-title{font-size:40px;line-height:1.26;letter-spacing:-1.4px;margin:13px 0 17px}.display-title em{color:#705ae8;font-style:normal}
.btn{border:1px solid #dfe2f0;background:white;color:#293455;padding:11px 17px;border-radius:10px;font-size:13px;font-weight:750;display:inline-flex;justify-content:center;align-items:center;gap:8px;transition:.18s}.btn:hover:not(:disabled){border-color:#a99cf5;transform:translateY(-1px)}.btn.primary{background:#6a56de;color:white;border-color:#6a56de;box-shadow:0 7px 19px #6758d72a}.btn.small{font-size:12px;padding:8px 11px}.btn.wide{width:100%}.link-button{border:0;background:transparent;color:#705add;font-size:12px;font-weight:700;padding:10px 0}.muted{color:#7a87a0;font-size:13px}.pill{font-size:11px;background:#f0edff;color:#6553d8;border-radius:999px;padding:6px 10px;font-weight:700}.pill.green{color:#128f6f;background:#e5faf4}.pill.gray{color:#64718a;background:#eef0f5}.pill.gold{background:#fff5db;color:#b07b16}
.hero{position:relative;min-height:315px;padding:41px 45px;border:1px solid #e1def9;border-radius:23px;background:linear-gradient(110deg,#f0eeff 0%,#f5f4ff 59%,#eaeafc 100%);overflow:hidden;display:flex;align-items:center}.hero::before{content:"";position:absolute;border:1px solid #dcd7ff;width:345px;height:345px;border-radius:50%;right:-37px;top:-82px}.hero::after{content:"";position:absolute;border:1px dashed #c3b9f5;width:270px;height:270px;border-radius:50%;right:3px;top:-45px}.hero-content{position:relative;z-index:2;max-width:590px}.hero .subtitle{max-width:490px;margin:0 0 22px}.hero-art{position:absolute;right:48px;top:54px;width:220px;height:196px;display:flex;align-items:center;justify-content:center;z-index:1}.hero-nodes{display:flex;flex-direction:column;align-items:center;gap:6px;transform:rotate(-7deg)}.hero-nodes .node{min-width:150px;padding:13px 20px;border:2px solid #b4a8ff;border-radius:12px;background:#fff;color:#5544c3;text-align:center;font-weight:800;font-size:19px;box-shadow:0 6px 10px #8177d21b}.hero-nodes .node:first-child{background:#6a56e6;color:white;border-color:#6a56e6}.hero-nodes .arrow{color:#8b7eea;font-size:17px;line-height:11px}
.section-head{display:flex;align-items:center;justify-content:space-between;margin:31px 0 16px}.section-head h2{margin:0;font-size:18px;letter-spacing:-.3px}.section-head span{font-size:12px;color:#7b86a0}.structure-grid,.three-grid,.two-grid{display:grid;gap:15px}.structure-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.three-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.two-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:white;border:1px solid #e4e8f3;border-radius:17px;padding:22px;min-width:0;box-shadow:0 5px 22px #24305c06}.structure-card{min-height:177px;display:flex;flex-direction:column;gap:11px}.structure-card:hover{border-color:#c4b8ff;box-shadow:0 12px 26px #7868d715;transform:translateY(-2px);transition:.2s}.structure-icon{width:45px;height:45px;display:grid;place-items:center;background:#efeaff;border-radius:12px;color:#7057e9;font-size:23px}.structure-card strong{font-size:15px}.structure-card .muted{font-size:11px;line-height:1.7;margin:0}.structure-link{font-size:11px;font-weight:750;color:#6b58d7;margin-top:auto}.feature-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:15px}.feature-grid .card{min-height:136px}.feature-grid h3{margin:7px 0;font-size:15px}.feature-grid p{font-size:12px;color:#7c8aa2;line-height:1.8;margin:0}
.split-lab{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr);gap:17px}.lab-display{min-height:430px}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.panel-top h3{margin:0;font-size:15px}.tab-row{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0}.tab-row a{padding:8px 12px;border:1px solid #e0e3ef;background:white;color:#687691;border-radius:9px;font-size:12px;font-weight:700}.tab-row a.selected{color:white;background:#6f5de9;border-color:#6f5de9}.stage{border-radius:14px;border:1px dashed #d8def0;background:linear-gradient(#f9faff,#f6f8ff);min-height:280px;max-height:470px;overflow:auto;display:flex;align-items:center;justify-content:center}.stage svg{min-width:400px;display:block}.stage-caption{font-size:12px;color:#607090;background:#f3f2ff;border-radius:9px;padding:13px 14px;margin:13px 0;line-height:1.7;min-height:54px}.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.controls .btn{font-size:12px;padding:9px 11px}.speed-field{font-size:11px;color:#61708e;display:flex;align-items:center;gap:7px;margin-left:auto}.speed-field input{width:73px}.field{display:block;font-size:12px;color:#52607a;font-weight:750;margin:12px 0}.field input,.field select,.field textarea,.auth-dialog input{display:block;width:100%;background:white;color:#202d49;border:1px solid #dde1ee;border-radius:10px;padding:11px 12px;margin-top:8px;font-size:13px}.field input:focus,.field select:focus,.auth-dialog input:focus{border-color:#9c8df1}.field-note{font-size:11px;color:#8b94a9;line-height:1.8}.pseudocode{margin:0;padding:0;list-style:none;display:grid;gap:2px}.pseudocode li{padding:9px 9px;border-radius:8px;color:#65718e;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.pseudocode li.active{background:#eeeaff;color:#5e49d7;font-weight:750}.pseudocode li span{display:inline-block;width:23px;color:#a5afc4}.history-row{font-size:11px;color:#677895;padding:9px 0;border-bottom:1px solid #eef0f6}.note-box{padding:15px 18px;border:1px solid #e8e3fc;border-radius:12px;background:#f4f1ff;color:#6958b4;font-size:12px;line-height:1.9}.note-box strong{color:#4c3ab4}
.choice-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:20px 0}.choice-row select{min-width:175px;border:1px solid #dfe3f1;border-radius:10px;background:white;padding:10px 12px;color:#283652}.question-box{padding:25px;border:1px solid #e0dafb;border-radius:16px;background:#f5f2ff}.question-box h3{font-size:18px;line-height:1.9;margin:8px 0 20px}.question-form{display:grid;gap:13px}.question-form .field{margin:0}.score-big{font-size:57px;font-weight:850;color:#6754e7;letter-spacing:-3px;margin:13px 0}.score-big small{font-size:20px;color:#98a0bb;letter-spacing:0}.score-status{font-weight:750}.stat-number{font-size:29px;font-weight:850;color:#273657;margin:11px 0 5px}.stat-card small{color:#8692a8;font-size:12px}.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.data-table th{color:#7c88a1;font-weight:700;padding:12px 10px;border-bottom:1px solid #e4e8f1}.data-table td{padding:13px 10px;border-bottom:1px solid #eef0f5;color:#3e4b66}.data-table tr:last-child td{border-bottom:none}.rank-number{font-weight:850;color:#6a58df}.empty{padding:30px 12px;text-align:center;color:#9aa5b9;font-size:13px}.inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.inline-form .field{min-width:180px;flex:1;margin:0}.friend-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-bottom:1px solid #edf0f6}.friend-row:last-child{border:0}.friend-name{font-weight:750;font-size:13px}.friend-row small{color:#91a0b9}.friend-actions{display:flex;gap:7px;align-items:center}.online-dot{height:8px;width:8px;background:#20b78a;border-radius:50%;display:inline-block;margin-right:4px}.online-dot.offline{background:#b7c0d3}.form-error{font-size:12px;color:#cf3b59;min-height:18px}
.toast{position:fixed;bottom:27px;right:27px;z-index:99;background:#263556;color:white;padding:12px 19px;border-radius:12px;box-shadow:0 18px 36px #131e3c33;font-size:13px;opacity:0;transform:translateY(12px);pointer-events:none;transition:.25s}.toast.visible{opacity:1;transform:none}.toast.error{background:#b83d56}.auth-dialog{width:min(430px,calc(100vw - 25px));border:1px solid #e6e4f3;border-radius:20px;box-shadow:0 30px 90px #1217334d;padding:28px;color:#1b2846}.auth-dialog::backdrop{background:#111b35a3}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start}.dialog-head h2{margin:0;font-size:23px}.icon-button{border:0;border-radius:8px;background:#f4f4f9;padding:8px 11px}.auth-dialog form{margin-top:17px}.auth-dialog label{font-size:12px;color:#55627d;display:block;margin:14px 0;font-weight:700}.dialog-foot{margin-top:12px;color:#a0a7b8;font-size:11px;line-height:1.7}
@media(max-width:1150px){.structure-grid{grid-template-columns:repeat(2,1fr)}.feature-grid{grid-template-columns:repeat(2,1fr)}.hero-art{opacity:.45;right:9px}.page{padding:25px}.topbar{padding:0 25px}.split-lab{grid-template-columns:1fr}}@media(max-width:740px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative;padding:15px;overflow-x:auto}.brand{padding-bottom:12px}.side-nav{display:flex;min-width:max-content}.nav-head,.side-foot{display:none}.side-nav a{font-size:11px;padding:8px}.topbar{height:auto;min-height:64px;padding:13px 17px;gap:8px}.breadcrumb{font-size:10px}.server-status{display:none}.page{padding:18px 15px 28px}.footer{padding:16px;font-size:9px}.footer span{display:none}.hero{padding:24px;min-height:260px}.hero-art{display:none}.display-title{font-size:29px}.structure-grid,.feature-grid,.three-grid,.two-grid{grid-template-columns:1fr}.split-lab{grid-template-columns:1fr}.page-title{font-size:24px}.stage svg{min-width:290px}.page-head{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

[hidden]{display:none!important}

/* 中文手机界面导航提示。 */
.mobile-nav-hint{display:none;color:#b9c6e4;font-size:11px;padding:7px 15px;}
@media(max-width:740px){.mobile-nav-hint{display:block;white-space:nowrap;}}
