@font-face{font-family:system-ui;src:local("Microsoft YaHei UI")}*{box-sizing:border-box}body{margin:0;color:#23425b;font-family:"Microsoft YaHei UI","Microsoft YaHei",system-ui,sans-serif;font-size:14px;background:#edf6fd url('/art/backgrounds/geometry_02.jpg') center/cover fixed}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #c9dcebd9;color:#315c7a;background:#ffffffc9;border-radius:12px;padding:11px 17px;transition:background .15s,transform .15s}button:hover{background:#e8f5ff;transform:translateY(-1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8ccaff;outline-offset:2px}button:disabled{cursor:default;opacity:.45;transform:none}button.primary{color:#fff;background:#427fa9;border-color:#427fa9;box-shadow:0 6px 15px #5f91ba24}button.primary:hover{background:#33729e}button.primary span{float:right}button.quiet{background:transparent;border:0;font-size:12px;padding:9px;color:#557f9c}button.danger-quiet{color:#a36574;background:#fcf5f8c9;border-color:#efdde3}h1,h2,h3,p{margin-top:0}h1{font-size:30px;letter-spacing:1px;margin-bottom:0;font-weight:650}h2{font-size:21px;font-weight:650;letter-spacing:.5px;margin:5px 0 10px}h3{font-size:18px}p{line-height:1.85}small{font-size:11px}img{object-fit:contain}.sidebar{width:221px;position:fixed;inset:0 auto 0 0;background:#f9fcffe3;border-right:1px solid #d9e7f2bd;backdrop-filter:blur(22px);display:flex;flex-direction:column;padding:32px 17px 19px;z-index:2}.brand{display:flex;align-items:center;gap:9px;margin-bottom:45px}.brand img{width:63px;height:66px}.brand b{font-size:18px;display:block}.brand small{display:block;letter-spacing:3px;color:#7f9ab0;margin-top:7px}.side-label{font-size:10px;letter-spacing:2px;color:#99afbf;margin:0 15px 14px}.nav{display:flex;align-items:center;gap:12px;border:0;background:transparent;width:100%;text-align:left;padding:14px 12px;margin-bottom:7px;min-height:76px}.nav.selected{background:#dfeffb;box-shadow:inset 3px 0 #518eb7}.nav img{width:42px;height:48px}.nav img.account-icon{width:33.6px;margin:0 4.2px}.nav i{width:42px;text-align:center;font-size:30px;font-style:normal;color:#6994b3}.nav span{font-weight:600}.nav small{display:block;font-size:10px;color:#809db3;font-weight:400;margin-top:7px}.sidebar-bottom{margin-top:auto;padding:20px 11px 0}.dot-row{display:flex;align-items:center;gap:9px;font-size:12px}.dot{display:inline-block;width:7px;height:7px;background:#70ab9e;border-radius:50%;box-shadow:0 0 0 4px #73b3a413}.sidebar-bottom p{font-size:11px;color:#879fb0;margin:14px 0 4px;line-height:1.9}.sidebar-bottom>small{display:block;color:#a3b5c2;font-size:9px;margin-top:15px}main{margin-left:221px;padding:35px 38px 20px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.eyebrow{font-size:10px;letter-spacing:2.8px;color:#7298b1;margin-bottom:8px;font-weight:550}.header-right{display:flex;align-items:center;gap:20px}.clock{font-size:11px;color:#7292a9;font-variant-numeric:tabular-nums}.account-badge{border:1px solid #d9e8f4;background:#ffffffb9;font-size:12px;border-radius:24px;display:flex;gap:10px;align-items:center}.notice{display:flex;gap:12px;align-items:center;border:1px solid #cbdeee70;border-radius:14px;background:#f7fbffbe;padding:11px 16px;margin-bottom:24px;color:#61829c;font-size:12px}.notice>span{color:#6f9cb9;font-size:18px}.notice p{margin:0}.page{display:none}.page.active{display:block;animation:appear .25s ease}.run-grid{display:grid;grid-template-columns:minmax(290px,1.03fr) minmax(330px,1fr);gap:23px;align-items:start}.two-col{display:grid;grid-template-columns:minmax(370px,1.2fr) minmax(300px,1fr);gap:23px;align-items:start}.stack{display:flex;flex-direction:column;gap:23px}.card{background:#fcfdffdf;border:1px solid #ffffffe0;box-shadow:0 12px 38px #5a86a20d,0 1px 3px #45739e08;border-radius:23px;padding:26px;position:relative;overflow:hidden}.card-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.card-heading p{font-size:11px;color:#7d97aa;margin:0 0 16px}.mascot-card{padding-top:28px}.mascot-card h2{padding-right:88px}.module-mascot{position:absolute;top:10px;right:5px;width:108px;height:122px;object-fit:contain;pointer-events:none;filter:drop-shadow(0 5px 5px #6194af13)}.card-intro{font-size:12px;color:#718da3;line-height:1.95;margin-bottom:21px;padding-right:54px}.fields{display:flex;flex-direction:column;gap:17px;margin:17px 0 23px}.fields.triple{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}label{font-size:11px;color:#638199;display:block}input:not([type=checkbox]),select{width:100%;height:42px;border:1px solid #d7e5f0;border-radius:10px;background:#fff;color:#365b76;padding:9px 12px;margin-top:9px;min-width:0}input[type=checkbox]{accent-color:#528ab1;width:16px;height:16px;flex-shrink:0;cursor:pointer}.switch-line{display:flex;gap:10px;align-items:flex-start;margin:20px 0;color:#446b87;font-size:12px;line-height:1.6}.switch-line small{display:block;color:#8ba1b2;font-size:10px;margin-top:5px;line-height:1.8}.button-row{display:flex;gap:10px;flex-wrap:wrap}.button-row>button{flex:1;white-space:nowrap;font-size:12px}.wide{width:100%;margin-top:14px}.fineprint{font-size:10px;line-height:1.9;color:#90a4b3;margin-top:15px}.map-wrap{position:relative;border:1px solid #dbe9f0;border-radius:16px;overflow:hidden;background:#f2f8fc}.map-wrap canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.map-wrap canvas:active{cursor:grabbing}.preview-map{height:391px;margin-top:4px}.map-legend{position:absolute;bottom:13px;left:12px;background:#ffffffe3;border-radius:8px;padding:8px 10px;display:flex;align-items:center;gap:6px;font-size:9px;color:#8299a9;pointer-events:none;box-shadow:0 3px 9px #5d809710}.route-dot{display:inline-block;background:#4c8ab9;width:15px;height:3px;border-radius:5px}.point-dot{display:inline-block;background:#dc9a88;width:7px;height:7px;border-radius:50%;margin-left:8px}.route-meta{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:12px;padding:22px 0 17px}.route-meta small{display:block;color:#90a6b6;font-size:10px;margin-bottom:8px}.route-meta b{font-size:25px;color:#416d8c;font-weight:600}.route-meta em{font-size:11px;font-style:normal;color:#8ca5b7}.route-meta span{font-size:10px;color:#6e8ba2;display:block;padding-top:8px;line-height:1.7}.map-credit{font-size:9px;color:#a0b1bd;text-align:right;padding-top:9px}.pill{font-size:10px;background:#eaf4fb;border:1px solid #d7e8f4;color:#6f9ab8;border-radius:8px;padding:6px 10px;white-space:nowrap}.timer{font-size:43px;font-weight:350;letter-spacing:2px;font-variant-numeric:tabular-nums;margin:6px 0 14px;color:#4b7d9f}.timer small{font-size:10px;letter-spacing:0;color:#94aabc;margin-left:15px}.progress{height:5px;background:#e7f0f8;border-radius:9px;overflow:hidden}.progress>div{height:100%;background:#75accd;width:0;transition:width .5s}.muted{font-size:12px;color:#7c97ab;line-height:1.9;margin-top:14px}.error-text{color:#b47a78;font-size:11px;line-height:1.8}.current-card .button-row{margin-top:18px}.time-entry{display:flex;align-items:center;gap:26px;margin:23px 0}.time-entry input{font-size:31px;font-weight:400;color:#447c9f;height:66px;width:195px;background:#f4f9fd;letter-spacing:2px}.time-entry>span{font-size:11px;color:#91a9bb;line-height:2}.metric-strip{display:flex;gap:32px;border-top:1px solid #e9f0f6;border-bottom:1px solid #e9f0f6;padding:23px 0}.metric-strip b{font-weight:500;font-size:23px;color:#4d7e9e}.metric-strip span{font-size:12px}.metric-strip small{display:block;margin-top:8px;color:#93a9b9}.info-note{padding:16px 17px;background:#edf5fb;border-radius:13px;color:#7393a9;font-size:11px;line-height:1.95;margin:18px 0}.schedule-card{padding:30px}.schedule-time{font-size:39px;color:#5384a3;letter-spacing:1px;margin-top:32px}.timeline{padding:25px 0 5px}.timeline>div{display:flex;gap:17px;min-height:95px;position:relative}.timeline>div:not(:last-child):before{content:"";position:absolute;left:15px;top:30px;width:1px;height:66px;background:#deebf4}.timeline i{width:31px;height:31px;border:1px solid #cedfeb;background:#f1f8fd;border-radius:50%;font-style:normal;color:#79a1ba;display:flex;align-items:center;justify-content:center;z-index:1;font-size:12px}.timeline b{font-size:12px;font-weight:550;display:block;margin:5px 0 9px}.timeline p{font-size:11px;color:#8ca3b3}.input-row{display:flex;gap:10px;align-items:flex-end}.input-row button{height:42px;white-space:nowrap;font-size:11px}.feature-row{display:flex;gap:17px;padding:19px 0;border-bottom:1px solid #e9f1f6}.feature-row>span{color:#acc7d9;font-size:22px}.feature-row b{font-size:12px;font-weight:600}.feature-row p{font-size:11px;color:#8ba3b4;margin:9px 0 0}.version-row{display:flex;justify-content:space-between;border-top:1px solid #e4edf4;margin:20px 0;padding-top:20px;color:#8da6b9;font-size:11px}.full-map{height:520px;margin-top:10px}.map-options{margin-top:18px;align-items:center}.map-options label{display:flex;gap:8px;align-items:center;font-size:12px}.map-options button{font-size:11px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;margin-top:20px;text-align:left;font-size:12px;white-space:nowrap}th{font-weight:500;color:#8ea7b9;font-size:10px;padding:15px 10px;border-bottom:1px solid #e0ebf4}td{padding:19px 10px;border-bottom:1px solid #edf3f8;color:#6789a1}.empty{text-align:center;padding:40px;color:#91a9bb}.empty-mascot{width:136px;height:150px;margin-bottom:18px}.empty p{font-size:12px}.server-results:empty{display:none}.server-results{padding:18px;background:#eff7fc;border-radius:12px;font-size:12px;color:#7495ad;margin-top:15px}.server-results dl{display:flex;flex-wrap:wrap;gap:15px 25px;margin:10px 0}.server-results dt{font-size:10px;color:#96aebe}.server-results dd{font-size:15px;margin:6px 0;color:#5c87a5}.server-results details{font-size:11px;margin-top:10px}.server-results pre{white-space:pre-wrap;word-break:break-all;font-size:11px;color:#7e9cb0}.toast{position:fixed;bottom:30px;left:calc(50% + 110px);transform:translate(-50%,20px);opacity:0;transition:all .2s;background:#355e79f2;color:white;border:1px solid #ffffff2b;box-shadow:0 8px 35px #3e69892b;border-radius:13px;padding:13px 24px;z-index:50;max-width:620px;font-size:12px;pointer-events:none}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid white;border-radius:26px;padding:25px 35px 32px;width:430px;text-align:center;box-shadow:0 25px 90px #375f873b;background:#f9fcff;color:#365d77}dialog::backdrop{background:#32527145;backdrop-filter:blur(5px)}dialog>img{width:115px;height:120px;margin-bottom:15px}dialog h2{font-size:23px}dialog p{font-size:12px;color:#849db0;white-space:pre-line;line-height:2;margin:16px 0 27px}footer{display:flex;justify-content:space-between;font-size:9px;color:#90a9bb;padding-top:25px;letter-spacing:1px}.splash{position:fixed;inset:0;background:#e8f3ff url('/art/backgrounds/geometry_02.jpg') center/cover;z-index:100;transition:opacity .5s;display:flex;align-items:center;justify-content:center}.splash>img{width:100%;height:100%;object-fit:cover}.splash-veil{position:absolute;inset:0;background:linear-gradient(90deg,#dceefff5 0%,#e9f5ffb3 18%,#e9f5ff00 50%),linear-gradient(0deg,#f4faff 0%,#f4faffed 10%,transparent 42%)}.vertical-title{position:absolute;left:7%;top:12%;display:flex;gap:28px}.vertical-title span{writing-mode:vertical-rl;font-size:33px;letter-spacing:12px;color:#3d7498;line-height:1.7;font-weight:500;text-shadow:0 1px 15px #fff8}.vertical-title span+span{font-size:23px;margin-top:70px;color:#658ea9}.splash-caption{position:absolute;bottom:36px;left:6%;right:6%;display:flex;align-items:center;gap:20px}.splash-caption img{width:78px;height:80px}.splash-caption h1{font-size:24px;margin-bottom:10px}.splash-caption p{font-size:12px;color:#7497b1;margin:0}.splash-caption small{margin-left:auto;letter-spacing:3px;color:#9db7c9}.splash.hidden{opacity:0;pointer-events:none}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(max-width:1100px){.sidebar{width:195px;padding-left:12px;padding-right:12px}main{margin-left:195px;padding:28px 24px 18px}.brand img{width:50px}.brand b{font-size:16px}.card{padding:21px}.header-right{gap:10px}.run-grid{gap:17px;grid-template-columns:minmax(270px,1fr) minmax(300px,1fr)}.two-col{gap:17px;grid-template-columns:minmax(330px,1.15fr) minmax(270px,1fr)}.button-row>button{padding:10px 11px}.module-mascot{width:94px;height:112px}.preview-map{height:360px}.card-intro{padding-right:38px}.clock{display:none}.route-meta b{font-size:23px}.toast{left:calc(50% + 97px)}}
.login-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#e8f3ff url('/art/backgrounds/geometry_02.jpg') center/cover;backdrop-filter:blur(6px)}.login-overlay[hidden]{display:none}.login-card{width:400px;max-width:92vw;padding:32px 36px 28px;text-align:center;background:#f9fcfff2;border:1px solid #ffffffe0;box-shadow:0 25px 90px #375f873b;border-radius:26px;color:#365d77}.login-card>img{width:104px;height:108px;margin-bottom:14px}.login-card h2{font-size:23px}.login-card p{font-size:12px;color:#849db0;line-height:2;margin:12px 0 22px}.login-card form{display:flex;flex-direction:column;gap:12px}.login-card input{text-align:center}.login-card button{margin-top:4px}.login-message{display:block;color:#b47a78;font-size:11px;margin-top:14px;min-height:14px}.switch-line .pill{margin-left:auto;align-self:center;font-weight:400}
