:root{font-family:Inter,"Segoe UI","Noto Sans TC","Microsoft JhengHei",sans-serif;color:#17243b;background:#f4f6fa;font-synthesis:none;--navy:#14243f;--blue:#315cdd;--blue-soft:#edf2ff;--muted:#748198;--line:#e5eaf2;--radius:16px}*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.6}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:3px solid #9bb3ff;outline-offset:3px}input:focus,textarea:focus{border-color:#6f91ee!important;outline:none;box-shadow:0 0 0 3px #315cdd10}input,textarea{color:#1b2a43;background:#fff;border:1px solid #dce3ef;border-radius:10px;padding:12px 14px;transition:border-color .15s,box-shadow .15s}input:disabled,textarea:disabled{background:#f6f8fb;color:#7b879a}textarea{resize:vertical;line-height:1.9;font-family:"Cascadia Code",Consolas,"Segoe UI",monospace;tab-size:15}textarea::placeholder,input::placeholder{color:#a0aabc}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:10px;padding:10px 17px;font-weight:600;white-space:nowrap;border:1px solid transparent;transition:background .15s,transform .15s}.button svg{width:17px;height:17px}.button-primary{background:var(--blue);color:white;box-shadow:0 4px 9px #315cdd15}.button-primary:hover:not(:disabled){background:#254bc6}.button-secondary{border-color:#dce3ed;background:#fff;color:#41516a}.button-secondary:hover:not(:disabled){background:#f7f9fc}.button-quiet{color:#778399;background:transparent}.button-quiet:hover{background:#f1f4f9}.button-row{display:flex;align-items:center;gap:10px}.text-button{background:none;border:0;color:#67758d;font-size:12px;padding:8px}.text-button:hover{color:var(--blue)}.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.8px;color:#7b89a1;margin-bottom:7px}.brand-icon{width:37px;height:37px;background:#315cdd;border-radius:11px;color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.brand-icon svg{width:21px;height:21px}.sidebar{width:224px;background:var(--navy);color:#cbd5e8;position:fixed;inset:0 auto 0 0;padding:32px 18px 20px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;align-items:center;gap:11px;color:#fff;font-weight:650;font-size:16px;letter-spacing:.2px;padding:0 8px}.nav-caption{font-size:10px;letter-spacing:2px;color:#697d9e;margin:45px 15px 13px}.side-nav{display:grid;gap:8px}.nav-item{border:0;background:transparent;border-radius:10px;display:flex;align-items:center;gap:12px;color:#94a5c1;padding:13px 15px;text-align:left;font-size:13px;font-weight:550;width:100%;min-height:47px}.nav-item:hover:not(:disabled){background:#ffffff08;color:#e6ecf6}.nav-item.active{background:#315cdd;color:#fff;box-shadow:0 5px 15px #07132920}.nav-item svg{width:18px;height:18px}.nav-badge{font-size:10px;background:#ffffff20;padding:1px 6px;border-radius:5px;margin-left:auto}.sidebar-bottom{margin-top:auto;padding:25px 8px 0;border-top:1px solid #ffffff0d}.user-info{display:flex;align-items:center;gap:11px}.avatar{width:34px;height:34px;border-radius:10px;background:#ffffff0d;color:#c5d3ef;display:grid;place-items:center;font-size:12px}.user-info b{font-size:12px;color:#d7e0f0;display:block;font-weight:550}.user-info div>span{font-size:10px;color:#7185a6}.logout-button{display:flex;align-items:center;gap:10px;background:transparent;border:0;color:#8fa1bf;margin-top:18px;padding:7px 0;font-size:12px}.logout-button svg{width:16px;height:16px}.logout-button:hover{color:#fff}.sidebar-version{font-size:10px;color:#5a7196;margin-top:22px}.app-content{margin-left:224px;min-height:100vh}.topbar{height:72px;background:#ffffffca;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;font-size:12px;color:#92a0b5}.topbar b{font-weight:500;color:#50617c}.crumb-divider{margin:0 12px;color:#c0c9d6}.timezone{display:flex;align-items:center;gap:8px;font-size:11px;color:#8a98ad}.live-dot{width:6px;height:6px;border-radius:50%;background:#6ca58d}.workspace{max-width:1360px;margin:auto;padding:35px 40px 28px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.page-heading h1{font-size:27px;line-height:1.45;letter-spacing:-.5px;font-weight:700}.page-heading>div>p:last-child{font-size:12px;color:var(--muted);margin-top:7px}.template-link{font-size:12px}.workflow{display:flex;align-items:center;gap:28px;list-style:none;padding:0;margin:0 0 26px;color:#a1acbd;font-size:11px}.workflow li{display:flex;align-items:center;gap:8px}.workflow li+li:before{content:"";width:28px;height:1px;background:#dce3ee;margin-right:2px}.workflow li>span{width:21px;height:21px;display:grid;place-items:center;border:1px solid #dbe2ee;border-radius:50%;font-size:10px}.workflow .current{color:#315cdd;font-weight:600}.workflow .current>span{background:#315cdd;border-color:#315cdd;color:#fff}.workflow .complete>span{background:#e2ebe8;border-color:#e2ebe8;color:#4e8971}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 3px 7px #13234502}.input-panel{padding:26px 28px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:25px}.panel-heading h2{font-size:16px;font-weight:650}.panel-heading p{font-size:11px;color:#9aa6b8;margin-top:5px}.subtle-badge{font-size:10px;color:#95a2b7;background:#f5f7fa;border:1px solid #edf0f5;border-radius:6px;padding:4px 9px}.subtle-badge.ready{color:#477d66;background:#eff7f2;border-color:#dfede4}.quick-grid{display:grid;grid-template-columns:245px 1fr;gap:38px}.field-label{display:block;font-size:12px;color:#53617a;font-weight:600;margin-bottom:9px}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.field-label-row .field-label{margin:0}.field-label-row>span{font-size:10px;color:#91a0b5}.field-label-row b{font-weight:600;color:#62728a}.date-section input{width:100%;height:46px;font-size:13px}.field-help{font-size:11px;color:#97a3b6;line-height:1.8;margin-top:8px}.quiet-note{display:flex;align-items:flex-start;gap:10px;background:#f7f9fc;border-radius:10px;padding:15px 13px;margin-top:28px;color:#8796ac}.quiet-note svg{width:16px;height:16px;margin-top:2px}.quiet-note p{font-size:11px;line-height:1.9}.flight-section textarea{width:100%;height:235px;font-size:14px}.input-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #edf0f6;margin-top:25px;padding-top:21px}.input-footer>p{font-size:11px;color:#8d9bb0}.input-footer .button{min-height:40px;font-size:12px}.import-grid{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(280px,1.1fr);gap:26px}.drop-zone{border:1.5px dashed #c8d5ee;border-radius:12px;background:#f9fbff;min-height:235px;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:22px;cursor:pointer;transition:background .18s,border-color .18s}.drop-zone:hover,.drop-zone.drag-over{background:#eef3ff;border-color:#557bdf}.drop-zone.drag-over{box-shadow:inset 0 0 0 2px #315cdd20}.drop-zone.disabled{opacity:.5;cursor:not-allowed}.upload-icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid #dfe7f8;border-radius:12px;background:#fff;color:#4167cd;margin-bottom:13px}.upload-icon svg{width:22px;height:22px}.drop-zone h3{font-size:14px;font-weight:600;color:#566984}.drop-zone p{font-size:10px;color:#9ba8bf;margin-top:4px;margin-bottom:12px}.drop-zone .button{font-size:11px;min-height:32px;padding:5px 13px}.file-types{font-size:10px;color:#acb6c6;margin-top:11px}.file-status{font-size:11px;line-height:1.8;color:#8e9db2;min-height:22px;margin-top:10px;overflow-wrap:anywhere}.file-status.success{color:#3f8061}.file-status.error{color:#bb5360;background:#fff3f4;border-radius:7px;padding:9px 11px}.privacy-copy{font-size:10px;color:#a2adc0;margin-top:4px}.paste-section textarea{width:100%;height:200px;font-size:12px;tab-size:12;white-space:pre;overflow-x:auto}.column-guide{display:grid;grid-template-columns:repeat(3,1fr);background:#f6f8fc;border:1px solid #e5eaf3;border-bottom:0;border-radius:8px 8px 0 0;font-size:10px;color:#8494ad;padding:8px 14px}.column-guide+textarea{border-radius:0 0 8px 8px}.import-preview{margin-top:23px;border:1px solid #e6ebf4;border-radius:10px;overflow:hidden}.import-preview>div:first-child{display:flex;justify-content:space-between;gap:15px;padding:11px 14px;background:#fafbfd;font-size:11px}.import-preview b{font-weight:600;color:#58708b}.import-preview span{color:#9caabd;font-size:10px}.preview-table{max-height:220px;overflow:auto}.preview-table table{width:100%;border-collapse:collapse;font-size:11px}.preview-table th,.preview-table td{text-align:left;padding:8px 14px;border-top:1px solid #f0f3f7}.preview-table th{color:#9aa7ba;font-weight:500}.preview-table td{color:#5b6b84}.inline-error{background:#fff2f3;border:1px solid #f3dce0;border-radius:8px;padding:11px 13px;font-size:12px;color:#b3485a;line-height:1.8;margin-top:15px}.notice{padding:13px 16px;margin-top:18px;border:1px solid #dae5fb;border-radius:10px;background:#f1f5ff;color:#5172b5;font-size:12px;line-height:1.9}.notice.error{border-color:#f0dadd;background:#fff3f4;color:#b55e68}.progress-panel{margin-top:20px;padding:21px 25px}.progress-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.state-label{font-size:12px;color:#536987;font-weight:650}.progress-heading p{font-size:11px;color:#99a5b8;margin-top:3px}.progress-heading strong{font-size:18px;font-weight:500;color:#315cdd}.progress-track{height:5px;border-radius:8px;background:#edf1f8;overflow:hidden;margin:18px 0 13px}.progress-track>div{height:100%;background:#315cdd;width:0;transition:width .25s}.progress-metrics{display:flex;flex-wrap:wrap;gap:10px 26px;font-size:10px;color:#9aa7bb}.progress-metrics b{color:#61718b;font-weight:600;margin-left:3px}.results-panel{margin-top:24px;overflow:hidden;scroll-margin-top:20px}.result-heading{padding:26px 25px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.result-heading h2{font-size:18px}.result-heading h2 span{font-size:12px;font-weight:400;color:#95a2b5;margin-left:9px}.result-heading #summary{font-size:11px;color:#97a3b7;margin-top:6px}.result-heading .button{font-size:11px;min-height:38px;padding:8px 13px}.result-toolbar{border-top:1px solid #eef1f6;padding:13px 25px;display:flex;align-items:center;justify-content:space-between;gap:15px}.filter-group{display:flex;gap:5px;background:#f5f7fb;border:1px solid #edf0f6;padding:3px;border-radius:8px}.filter-group button{border:0;background:transparent;color:#96a2b6;padding:6px 11px;border-radius:6px;font-size:11px;white-space:nowrap}.filter-group button.selected{background:#fff;box-shadow:0 1px 4px #1525450a;color:#4b6494}.filter-group button span{font-size:10px;margin-left:5px;opacity:.7}.table-wrap{overflow:auto;max-height:65vh}.results-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px}.results-table th{padding:13px 15px;color:#8a99b0;background:#f8fafc;font-size:10px;font-weight:600;text-align:left;position:sticky;top:0;z-index:1;border-block:1px solid #edf1f7}.results-table td{padding:13px 15px;border-bottom:1px solid #f0f3f8;color:#66758d;vertical-align:middle}.results-table td:first-child{color:#a6b2c4;font-size:10px;padding-left:25px}.results-table td:nth-child(4) b{color:#354967;font-size:12px;font-weight:600}.time-value{font-size:13px;color:#334c73;font-weight:650;font-variant-numeric:tabular-nums}.time-kind,.muted{font-size:10px;color:#a3aec0;line-height:1.7;margin-top:3px}.detail{min-width:200px;max-width:300px;white-space:normal}.status-tag{display:inline-flex;align-items:center;border-radius:5px;padding:2px 7px;font-size:10px;background:#edf6f0;color:#618570}.status-tag.attention{background:#fff5df;color:#ac8b42}.status-tag.large{background:#fff0ed;color:#bb7163}.status-tag.manual{background:#f0f2f7;color:#8c98ae}.status-tag.waiting{background:#eef3ff;color:#829aca}.manual-time{width:93px;border-radius:7px;border-color:#e3e9f3;font-size:11px;padding:6px 7px;font-variant-numeric:tabular-nums}.source-links{display:flex;gap:5px}.source-link{font-size:10px;color:#8199c5;background:#fff;border:1px solid #e5ebf6;border-radius:6px;padding:4px 7px;line-height:1.5;cursor:pointer}.source-link:hover{border-color:#91a9de;color:#315cdd}.difference-positive{color:#b38b40!important}.difference-negative{color:#688cb4!important}.results-table tr.large{background:#fffafa}.results-table tr.attention{background:#fffdf8}.results-table tr.manual{background:#fcfcfe}.empty-filter{padding:42px;text-align:center;color:#a2afc1;font-size:12px}.results-footnote{padding:13px 25px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:10px;color:#a6b0c0;background:#fcfdff}.workspace-footer{display:flex;align-items:center;justify-content:space-between;margin-top:25px;font-size:10px;color:#b2bdce}.workspace-footer>span{color:#b0bbcd}.login-page{min-height:100vh;background:#edf1f7;display:flex;align-items:center;justify-content:center;padding:40px 24px}.login-shell{width:900px;min-height:545px;display:grid;grid-template-columns:43% 57%;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 25px 80px #17294312,0 4px 10px #17294304}.login-brand-panel{background:#152744;position:relative;overflow:hidden;padding:39px 32px;color:#fff;display:flex;flex-direction:column;justify-content:space-between}.login-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.login-brand h1{font-size:19px;letter-spacing:.3px;font-weight:600}.login-brand .brand-icon{width:37px;height:37px;border-radius:11px;background:#315cdd}.brand-caption{font-size:9px;letter-spacing:3.2px;color:#8395b2;position:relative;z-index:1}.route-art{position:absolute;inset:100px -80px 30px -120px}.route-orbit{position:absolute;width:420px;height:420px;border-radius:50%;border:1px solid #99b8ea15;left:16px;top:0}.orbit-two{width:300px;height:300px;left:76px;top:60px;border-style:dashed;border-color:#99b8ea21}.route-plane{position:absolute;left:250px;top:109px;width:67px;height:67px;border-radius:18px;display:grid;place-items:center;background:#315cdd;box-shadow:0 15px 60px #315cdd40;transform:rotate(-8deg)}.route-plane svg{width:34px;height:34px;stroke-width:1.3}.route-point{position:absolute;width:9px;height:9px;border:2px solid #8fa6ca;border-radius:50%;box-shadow:0 0 0 8px #89a8d40a}.point-one{left:98px;top:285px}.point-two{left:365px;top:255px}.route-horizon{position:absolute;left:80px;right:-20px;top:214px;height:1px;background:linear-gradient(90deg,transparent,#8aacec25,transparent);transform:rotate(-21deg)}.login-form-panel{padding:58px 62px 52px;display:flex;flex-direction:column;justify-content:center}.login-form-heading{margin-bottom:34px}.login-form-heading .eyebrow{font-size:9px;letter-spacing:2.2px;color:#a5b0c1}.login-form-heading h2{font-size:28px;letter-spacing:1px;margin-top:7px;font-weight:650}.form-field{margin-bottom:23px}.form-field label{font-size:12px;color:#697891;display:block;margin-bottom:9px}.form-field input{height:47px;width:100%;font-size:13px;background:#fbfcfe}.password-field{position:relative}.password-field input{padding-right:47px}.password-toggle{position:absolute;inset:0 7px 0 auto;border:0;background:none;display:grid;place-items:center;width:32px;color:#a0acc0}.password-toggle svg{width:18px;height:18px}.password-toggle:hover{color:#315cdd}.login-submit{width:100%;margin-top:12px;justify-content:space-between;padding-inline:18px;height:46px;font-size:13px}.login-submit:disabled{opacity:.7}.login-form-panel .inline-error{margin-top:-4px;margin-bottom:15px;font-size:11px}.caps-hint{font-size:10px;color:#ad8c56;margin-top:6px}.login-brand-panel:after{content:"";position:absolute;width:280px;height:280px;right:-180px;bottom:-110px;background:#3c68ad10;border-radius:50%}
@media(min-width:1600px){.workspace{padding-top:44px}.topbar{padding-inline:50px}}
@media(max-width:1150px){.sidebar{width:195px;padding-inline:13px}.brand{font-size:14px;gap:8px}.brand-icon{width:32px;height:32px}.app-content{margin-left:195px}.workspace{padding:27px}.topbar{padding-inline:27px}.quick-grid{grid-template-columns:210px 1fr;gap:25px}.import-grid{grid-template-columns:1fr;gap:23px}.drop-zone{min-height:205px}.paste-section textarea{height:160px}.result-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.sidebar{position:static;width:100%;padding:15px 20px 0}.brand{font-size:15px;padding:0}.nav-caption,.sidebar-bottom,.sidebar-version{display:none}.side-nav{display:flex;margin-top:17px;gap:7px;padding-bottom:13px}.nav-item{width:auto;min-height:36px;padding:8px 12px;font-size:11px;gap:7px}.nav-item svg{width:15px;height:15px}.app-content{margin:0}.topbar{height:49px;padding-inline:21px}.timezone{font-size:10px}.workspace{padding:25px 18px}.page-heading{align-items:flex-start;gap:14px}.page-heading h1{font-size:23px}.page-heading .template-link{padding:8px;font-size:10px;min-height:35px}.page-heading .template-link svg{display:none}.page-heading>div>p:last-child{max-width:245px;font-size:11px}.input-panel{padding:21px}.quick-grid{grid-template-columns:1fr;gap:24px}.quiet-note{margin-top:13px;padding:10px}.quiet-note p{font-size:10px}.flight-section textarea{height:185px}.input-footer{align-items:flex-start;flex-direction:column;gap:12px}.input-footer .button-row{width:100%;justify-content:flex-end}.input-footer #runBtn{flex:1}.workflow{gap:10px;font-size:10px}.workflow li+li:before{width:12px;margin-right:0}.panel-heading{gap:10px}.progress-panel{padding:19px}.result-heading{padding:20px}.result-toolbar{padding:12px 15px;flex-wrap:wrap}.filter-group button{padding:6px 8px;font-size:10px}.result-heading .button-row{width:100%;justify-content:flex-end}.result-heading .button-row .button{flex:1}.results-footnote{padding:13px 18px}.login-page{padding:22px}.login-shell{width:440px;grid-template-columns:1fr;min-height:0;border-radius:20px}.login-brand-panel{padding:28px 32px;min-height:110px}.route-art,.brand-caption{display:none}.login-brand h1{font-size:18px}.login-form-panel{padding:36px 32px 43px}.login-form-heading{margin-bottom:27px}.login-form-heading h2{font-size:26px}.logout-button{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.topbar-right{display:flex;align-items:center;gap:14px}.mobile-logout{display:none;border:0;background:none;color:#7487a6;padding:4px}.mobile-logout svg{width:17px;height:17px}.results-table{font-size:12px}.results-table th{font-size:11px}.field-help{font-size:12px}.panel-heading p{font-size:12px}.privacy-copy{font-size:11px}.file-status{font-size:12px}.input-footer>p{font-size:12px}.progress-heading p{font-size:12px}.result-heading #summary{font-size:12px}.results-footnote{font-size:11px}@media(max-width:760px){.mobile-logout{display:inline-flex}.results-table{font-size:11px}.field-help{font-size:11px}}
.workspace{padding-top:28px}.page-heading{margin-bottom:22px}.workflow{margin-bottom:22px}.input-panel{padding:22px 24px}.panel-heading{margin-bottom:20px}.flight-section textarea{height:180px}.input-footer{margin-top:20px;padding-top:17px}.field-help,.panel-heading p,.input-footer>p,.privacy-copy,.file-status,.progress-heading p,.result-heading #summary{color:#718098}.status-tag{color:#4f765e}.status-tag.manual{color:#6c7b91}.time-kind,.muted{font-size:11px;color:#8a97ac}@media(min-width:1001px) and (max-width:1150px){.import-grid{grid-template-columns:minmax(230px,.9fr) minmax(260px,1.1fr)}}
