:root{--paper: #efebe3;--paper-deep: #ddd7cb;--surface: #fcfaf6;--surface-2: #f5f1e8;--ink: #1a1611;--ink-2: #463f35;--muted: #8b8375;--line: #dad2c3;--line-soft: #e7e1d5;--accent: #c8452b;--accent-dark: #a8361f;--accent-soft: rgba(200, 69, 43, .09);--sans: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", STSong, SimSun, serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Courier New", monospace;--fs-hero: .38rem;--fs-title: .3rem;--fs-body: .24rem;--fs-btn: .28rem;--fs-tab: .23rem;--fs-meta: .2rem;--fs-label: .17rem}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--paper-deep);color:var(--ink-2);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}input,button{font-family:inherit}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.app{position:relative;max-width:6.4rem;margin:0 auto;height:100vh;height:100dvh;background:var(--paper);overflow:hidden;box-shadow:0 0 .6rem rgba(26,22,17,.18)}.app:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:3000;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}@keyframes rise{0%{opacity:0;transform:translateY(.14rem)}to{opacity:1;transform:none}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes fadeDown{0%{opacity:0;transform:translateY(-.12rem)}to{opacity:1;transform:none}}#searchPage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center}.brand{margin-top:16%;text-align:center;animation:rise .5s cubic-bezier(.2,.7,.3,1) both}.brand-mark{width:.82rem;height:.82rem;margin:0 auto .24rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);box-shadow:0 .08rem .2rem rgba(200,69,43,.28)}.brand-mark svg{width:.42rem;height:.42rem;fill:var(--surface)}.brand-title{font-family:var(--serif);font-size:var(--fs-hero);font-weight:700;line-height:1.15;letter-spacing:.06rem;color:var(--ink)}.brand-sub{display:flex;align-items:center;justify-content:center;gap:.14rem;margin-top:.14rem;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.05rem;color:var(--muted)}.brand-sub:before,.brand-sub:after{content:"";width:.28rem;height:.01rem;background:var(--line)}.ticket{position:relative;width:5.6rem;max-width:87.5%;margin-top:.6rem;padding:.3rem .26rem .22rem .32rem;background:var(--surface);border:.01rem solid var(--line);border-radius:.16rem;box-shadow:0 .05rem .2rem rgba(26,22,17,.06);overflow:hidden;animation:rise .5s .08s cubic-bezier(.2,.7,.3,1) both}.ticket-stub{position:absolute;left:0;top:0;bottom:0;width:.08rem;background:var(--accent)}.ticket-label{display:block;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.04rem;color:var(--muted)}.ticket-field{display:flex;align-items:center;gap:.14rem;margin-top:.14rem;padding-bottom:.12rem;border-bottom:.01rem solid var(--line)}.ticket-field input{flex:1;min-width:0;height:.52rem;border:0;outline:0;background:transparent;font-family:var(--mono);font-size:.26rem;letter-spacing:.01rem;color:var(--ink)}.ticket-field input::placeholder{color:#c6beaf}.ticket-scan{flex:none;width:.44rem;height:.44rem;padding:0;border:0;background:transparent;color:var(--ink-2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.ticket-scan svg{width:.3rem;height:.3rem;stroke:currentColor}.ticket-scan:hover{color:var(--accent)}.ticket-perf{height:0;margin:.2rem -.26rem .16rem -.24rem;border-top:.01rem dashed var(--line)}.ticket-hint{font-size:var(--fs-label);line-height:1.6;color:var(--muted)}.ticket-barcode{height:.34rem;margin-top:.18rem;opacity:.16;border-radius:.02rem;background-image:repeating-linear-gradient(90deg,var(--ink) 0 .02rem,transparent .02rem .07rem,var(--ink) .07rem .09rem,transparent .09rem .14rem,var(--ink) .14rem .17rem,transparent .17rem .21rem)}.btn-primary{width:5.6rem;max-width:87.5%;height:.8rem;margin-top:.36rem;border:0;border-radius:.13rem;background:var(--accent);color:var(--surface);font-size:var(--fs-btn);font-weight:600;letter-spacing:.08rem;text-indent:.08rem;cursor:pointer;box-shadow:0 .08rem .2rem rgba(200,69,43,.24);transition:transform .12s ease,background .2s ease,box-shadow .2s ease;animation:rise .5s .16s cubic-bezier(.2,.7,.3,1) both}.btn-primary:active{transform:scale(.99);background:var(--accent-dark);box-shadow:0 .04rem .12rem rgba(200,69,43,.2)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.form-error{width:5.6rem;max-width:87.5%;margin-top:.22rem;font-size:var(--fs-meta);line-height:1.5;text-align:center;color:var(--accent)}.page-foot{margin-top:auto;width:100%;height:.76rem;padding:0 .3rem;border-top:.01rem solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-label);letter-spacing:.02rem;color:var(--muted);animation:rise .5s .24s cubic-bezier(.2,.7,.3,1) both}#resultPage{position:absolute;top:0;right:0;bottom:0;left:0}.tabs{display:flex;gap:.06rem;padding:.07rem;margin:.16rem 0 .18rem;background:var(--surface-2);border:.01rem solid var(--line);border-radius:.16rem}.tabs button{flex:1;height:.62rem;border:0;border-radius:.11rem;background:transparent;font-size:var(--fs-tab);letter-spacing:.01rem;color:var(--ink-2);cursor:pointer;transition:background .2s ease,color .2s ease}.tabs button.active{background:var(--ink);color:var(--surface);font-weight:600}.sheet{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;padding:.26rem;background:var(--surface);overflow-y:auto;-webkit-overflow-scrolling:touch;animation:sheetUp .44s cubic-bezier(.2,.8,.25,1) both}.hero{display:flex;align-items:center;gap:.16rem;padding:.2rem .26rem;margin:-.26rem -.26rem 0;background:linear-gradient(135deg,var(--surface-2) 0%,var(--accent-soft) 100%);border-bottom:.01rem solid var(--line);overflow:hidden}.hero-art{flex:none;width:1.5rem;height:.95rem;color:var(--ink)}.hero-art svg{width:100%;height:100%}.hero-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:.08rem}.hero-meta .status-pill{align-self:flex-start}.hero-code{font-size:.3rem;font-weight:600;letter-spacing:.01rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-route{font-size:var(--fs-meta);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-body{display:flex;flex-direction:column;gap:.18rem}.steps{list-style:none;overflow:hidden}.step{display:flex;gap:.14rem;padding-bottom:.16rem}.step:last-child{padding-bottom:0}.step-rail{flex:none;width:.46rem;display:flex;flex-direction:column;align-items:center}.step-dot{flex:none;width:.46rem;height:.46rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:.02rem solid var(--line);color:var(--muted)}.step-dot svg{width:.26rem;height:.26rem;stroke:currentColor}.step.done .step-dot{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 .06rem .16rem rgba(200,69,43,.28)}.step-line{width:.03rem;height:.38rem;background:var(--line-soft)}.step-line.on{background:var(--accent)}.step-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.06rem;overflow:hidden}.step-label{font-size:var(--fs-body);font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step.done .step-label{color:var(--ink)}.step-time{font-size:var(--fs-meta);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-wait{color:var(--muted)}.grabber{display:block;width:.8rem;height:.07rem;margin:0 auto .24rem;border-radius:.04rem;background:var(--line)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.18rem;padding-bottom:.2rem;margin-bottom:.26rem;border-bottom:.01rem solid var(--line-soft)}.sheet-id{display:flex;flex-direction:column;gap:.05rem;min-width:0}.sheet-label{font-size:var(--fs-label);letter-spacing:.05rem;color:var(--muted)}.sheet-meta{display:flex;align-items:center;gap:.1rem}.status-pill{font-size:var(--fs-label);line-height:1;padding:.05rem .11rem;border-radius:.06rem;letter-spacing:.02rem;color:var(--accent);background:var(--accent-soft);border:.01rem solid rgba(200,69,43,.25)}.waybill{font-size:var(--fs-title);font-weight:600;letter-spacing:.01rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-ghost{flex:none;height:.54rem;padding:0 .2rem;border:.01rem solid var(--line);border-radius:.09rem;background:transparent;font-size:.19rem;color:var(--ink-2);white-space:nowrap;cursor:pointer;transition:border-color .2s ease,color .2s ease,background .2s ease}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.record{display:flex;flex-direction:column;gap:.02rem}.record-row{display:flex;align-items:baseline;gap:.24rem;padding:.22rem 0;border-bottom:.01rem dashed var(--line-soft)}.record-row:first-child{padding-top:.06rem}.record-row:last-child{border-bottom:0;padding-bottom:0}.record-key{flex:none;width:1.5rem;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.04rem;color:var(--muted)}.record-val{flex:1;min-width:0;font-size:var(--fs-body);line-height:1.6;color:var(--ink);word-break:break-word}.img-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.14rem}.img-grid a{display:block;border:.01rem solid var(--line);border-radius:.1rem;overflow:hidden;background:var(--surface-2)}.img-grid img{display:block;width:100%;height:1.5rem;object-fit:cover}.empty{padding:.6rem 0 .5rem;text-align:center;color:var(--muted);font-size:var(--fs-meta);letter-spacing:.02rem}.empty svg{display:block;width:.8rem;height:.8rem;margin:0 auto .2rem;stroke:var(--line);fill:none}.admin-shell{max-width:11rem;margin:0 auto;min-height:100vh;background:var(--paper);box-shadow:0 0 .6rem rgba(26,22,17,.12)}.admin-bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:.2rem;height:.86rem;padding:0 .4rem;border-bottom:.01rem solid var(--line);background:rgba(252,250,246,.94);backdrop-filter:blur(8px)}.admin-brand{display:flex;align-items:baseline;gap:.14rem;min-width:0}.admin-sub{font-size:var(--fs-label);letter-spacing:.06rem;color:var(--muted)}.admin-bar-right{display:flex;align-items:center;gap:.12rem}.admin-title{font-family:var(--serif);font-size:var(--fs-title);font-weight:700;letter-spacing:.04rem;color:var(--ink)}.admin-tabs{display:flex;gap:.12rem;padding:.26rem .4rem 0}.admin-tabs button{height:.6rem;padding:0 .3rem;border:.01rem solid var(--line);border-radius:.1rem;background:var(--surface);font-size:var(--fs-body);color:var(--ink-2);cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}.admin-tabs button:hover{border-color:var(--accent);color:var(--accent)}.admin-tabs button.active{background:var(--ink);border-color:var(--ink);color:var(--surface);font-weight:600}.admin-body{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:.24rem;align-items:start;padding:.24rem .4rem .6rem}.admin-main,.admin-aside,.admin-pane{min-width:0}.admin-aside .card{position:sticky;top:1.06rem}@media(max-width:860px){.admin-body{grid-template-columns:minmax(0,1fr)}.admin-aside .card{position:static}}.card{padding:.24rem;margin-bottom:.24rem;border:.01rem solid var(--line);border-radius:.14rem;background:var(--surface);box-shadow:0 .04rem .14rem rgba(26,22,17,.04)}.card-title{display:flex;align-items:center;justify-content:space-between;gap:.14rem;margin-bottom:.2rem;padding-bottom:.16rem;border-bottom:.01rem dashed var(--line);font-family:var(--serif);font-size:.24rem;font-weight:600;color:var(--ink)}.card-tag{padding:.04rem .12rem;border-radius:.06rem;font-family:var(--sans);font-size:var(--fs-label);font-weight:500;color:var(--accent);background:var(--accent-soft);border:.01rem solid rgba(200,69,43,.22)}.card-hint{font-size:var(--fs-meta);line-height:1.6;color:var(--muted)}.field{display:block;flex:1 1 0;min-width:0;margin-bottom:.2rem}.field-key{display:block;margin-bottom:.08rem;font-size:var(--fs-label);letter-spacing:.03rem;color:var(--muted)}.field-key em{font-style:normal;color:var(--accent)}.field-row{display:flex;gap:.14rem}.field input,.field select,.img-row input{width:100%;height:.62rem;padding:0 .18rem;border:.01rem solid var(--line);border-radius:.1rem;background:var(--surface-2);color:var(--ink);font-size:var(--fs-body);outline:none;transition:border-color .18s ease,background .18s ease}.field input::placeholder,.img-row input::placeholder{color:#b6ae9d}.field input:focus,.field select:focus,.img-row input:focus{border-color:var(--accent);background:var(--surface)}.track-row{padding:.18rem;margin-bottom:.18rem;border:.01rem solid var(--line-soft);border-radius:.12rem;background:var(--surface-2)}.track-head{display:flex;align-items:center;gap:.12rem;margin-bottom:.16rem}.field input:disabled{color:var(--muted);background:#efeade;cursor:not-allowed}.btn-mini{height:.44rem;padding:0 .16rem;border:.01rem solid var(--line);border-radius:.07rem;background:var(--surface);font-size:var(--fs-label);color:var(--ink-2);cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease}.btn-mini:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.btn-mini.danger:hover{border-color:var(--accent);color:var(--surface);background:var(--accent)}.img-frozen{margin-top:.1rem;color:var(--ink-2)}.img-row{display:flex;align-items:center;gap:.12rem;margin-bottom:.14rem}.admin-msg{width:100%;max-width:100%;text-align:left}.admin-ok{margin-top:.22rem;font-size:var(--fs-meta);line-height:1.5;color:#2f7a4f}.admin-actions{display:flex;align-items:center;gap:.16rem;margin-bottom:.28rem}.admin-save{width:auto;flex:1;margin-top:0;animation:none}.recent-list{list-style:none}.recent-item{display:flex;flex-direction:column;gap:.06rem;width:100%;padding:.16rem .18rem;margin-bottom:.12rem;border:.01rem solid var(--line-soft);border-radius:.1rem;background:var(--surface-2);text-align:left;cursor:pointer;transition:border-color .18s ease,background .18s ease}.recent-item:hover{border-color:var(--accent);background:var(--surface)}.recent-code{font-size:var(--fs-body);font-weight:600;color:var(--ink)}.recent-meta{font-size:var(--fs-meta);color:var(--ink-2)}.recent-sub{font-size:var(--fs-label);color:var(--muted)}.import-note{margin-bottom:.2rem}.btn-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.field-row3{display:flex;gap:.14rem}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;padding:.52rem .3rem;border:.02rem dashed var(--line);border-radius:.14rem;background:var(--surface-2);text-align:center;cursor:pointer;transition:border-color .18s ease,background .18s ease}.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.dropzone input[type=file]{display:none}.dz-icon svg{width:.5rem;height:.5rem;stroke:var(--accent)}.dz-text{font-size:var(--fs-body);color:var(--ink)}.dz-sub{font-size:var(--fs-label);color:var(--muted)}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.16rem;margin-bottom:.2rem}.stat{padding:.16rem;border:.01rem solid var(--line-soft);border-radius:.1rem;background:var(--surface-2);text-align:center}.stat-n{display:block;font-size:.34rem;font-weight:600;line-height:1.3;color:var(--ink)}.stat-l{font-size:var(--fs-label);color:var(--muted)}.preview-box{margin-bottom:.2rem}.preview-box summary{margin-bottom:.12rem;font-size:var(--fs-meta);color:var(--ink-2);cursor:pointer}.preview-table{width:100%;border-collapse:collapse}.preview-table th,.preview-table td{padding:.1rem .12rem;border-bottom:.01rem solid var(--line-soft);font-size:var(--fs-meta);text-align:left}.preview-table th{font-weight:500;color:var(--muted)}.warn-box{padding:.16rem .18rem;margin-bottom:.2rem;border-left:.05rem solid var(--accent);border-radius:.08rem;background:var(--accent-soft)}.warn-title{margin-bottom:.08rem;font-size:var(--fs-meta);color:var(--accent)}.warn-list{list-style:none}.warn-list li{font-size:var(--fs-label);line-height:1.8;color:var(--ink-2)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important}}
