:root{--orange: #FF7A00;--orange-deep: #F06400;--orange-light: #FFF4E8;--orange-bg: #FFEFDC;--text: #262626;--text-2: #8a8a8a;--text-3: #b0b0b0;--line: #eee;--line-2: #f0f0f0;--green: #22c55e;--green-light: #f0fdf4;--red: #ef4444;--red-light: #fef2f2;--blue: #2f7cf6;--blue-light: #eff6ff;--radius: 8px;--radius-lg: 12px;--shadow: 0 2px 8px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;background:#f5f6f8;color:var(--text);font-size:14px;line-height:1.5}#app{height:100%}a{color:var(--orange);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;outline:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#ddd;border-radius:3px}::-webkit-scrollbar-track{background:transparent}.login-page{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#FF8A1E 0%,#FF6A00 50%,#f5f6f8 50%);overflow-y:auto}.login-box{width:420px;background:#fff;border-radius:16px;padding:40px 36px 36px;box-shadow:0 20px 60px #d25a002e;margin:40px 16px}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:28px}.login-brand .logo{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#FF8A1E,#FF6A00);display:flex;align-items:center;justify-content:center;color:#fff;font-size:22px;font-weight:800;flex:none}.login-brand h1{font-size:22px;font-weight:700;color:var(--text)}.login-brand p{font-size:12px;color:var(--text-2);margin-top:2px}.login-tabs{display:flex;gap:28px;margin-bottom:24px;border-bottom:1px solid var(--line)}.login-tabs span{padding:8px 0;font-size:15px;color:var(--text-2);cursor:pointer;position:relative;font-weight:500}.login-tabs span.on{color:var(--orange);font-weight:600}.login-tabs span.on:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--orange);border-radius:1px}.login-sub-tabs{display:flex;gap:20px;margin-bottom:18px}.login-sub-tabs span{font-size:13px;color:var(--text-2);cursor:pointer;padding-bottom:4px}.login-sub-tabs span.on{color:var(--orange);font-weight:600}.field{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-bottom:14px;gap:10px;transition:border-color .2s}.field:focus-within{border-color:var(--orange)}.field .pre{color:var(--text-2);font-size:13px;flex:none}.field input{flex:1;border:none;font-size:14px;background:transparent;min-width:0}.field input::placeholder{color:#ccc}.code-btn{flex:none;border:none;background:none;color:var(--orange);font-size:13px;font-weight:600;padding:4px 0}.code-btn:disabled{color:#bbb}.login-btn{width:100%;margin-top:8px;padding:13px;border:none;border-radius:var(--radius);background:linear-gradient(90deg,#FF922B,#FF6A00);color:#fff;font-size:15px;font-weight:600;transition:opacity .2s}.login-btn:hover{opacity:.9}.login-btn:disabled{opacity:.6;cursor:not-allowed}.agree-line{display:flex;gap:8px;align-items:flex-start;margin-top:16px;font-size:12px;color:var(--text-2);line-height:1.6}.agree-line a{color:var(--orange);cursor:pointer}.login-foot{text-align:center;font-size:11px;color:#c5c5c5;margin-top:20px;line-height:1.7}.register-hint{font-size:12px;color:var(--text-2);margin-top:12px;text-align:center}.register-hint a{cursor:pointer}.app{display:flex;height:100%;flex-direction:row}.sidebar{width:220px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;flex:none;box-shadow:1px 0 4px #00000008}.sidebar-brand{padding:20px 18px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line-2)}.sidebar-brand .logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#FF8A1E,#FF6A00);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:800;flex:none}.sidebar-brand h2{font-size:16px;font-weight:700}.sidebar-brand p{font-size:11px;color:var(--text-2)}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:10px;padding:11px 18px;margin:2px 8px;border-radius:var(--radius);cursor:pointer;font-size:14px;color:var(--text-2);transition:all .15s;-webkit-user-select:none;user-select:none}.nav-item:hover{background:var(--orange-light);color:var(--text)}.nav-item.on{background:var(--orange-light);color:var(--orange);font-weight:600}.nav-item .ico{width:20px;text-align:center;font-size:16px;flex:none}.sidebar-user{padding:14px 18px;border-top:1px solid var(--line-2);display:flex;align-items:center;gap:10px}.sidebar-user .avatar{width:36px;height:36px;border-radius:50%;background:var(--orange-light);display:flex;align-items:center;justify-content:center;font-size:16px;flex:none}.sidebar-user .info{flex:1;min-width:0}.sidebar-user .info .name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user .info .role{font-size:11px;color:var(--text-2)}.sidebar-user .logout-btn{flex:none;border:none;background:none;color:var(--text-3);font-size:12px;padding:4px 8px;border-radius:4px}.sidebar-user .logout-btn:hover{color:var(--red);background:var(--red-light)}.content{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.content-header{flex:none;padding:16px 28px;background:#fff;border-bottom:1px solid var(--line-2);display:flex;align-items:center;justify-content:space-between}.content-header h1{font-size:18px;font-weight:700}.content-header .sub{font-size:12px;color:var(--text-2);margin-top:2px}.content-body{flex:1;overflow-y:auto;padding:20px 28px}.hall-stats{display:flex;gap:16px;margin-bottom:20px}.hall-stat{flex:1;background:#fff;border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow)}.hall-stat .label{font-size:12px;color:var(--text-2)}.hall-stat .value{font-size:28px;font-weight:700;color:var(--orange);margin-top:4px}.hall-stat .value .unit{font-size:13px;font-weight:400;color:var(--text-2);margin-left:2px}.hall-filter{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.hall-filter select{padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius);font-size:13px;background:#fff;color:var(--text);min-width:120px}.hall-cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.case-card{background:#fff;border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow);transition:box-shadow .2s;cursor:pointer;position:relative}.case-card:hover{box-shadow:var(--shadow-lg)}.case-card .card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.case-card .card-title{font-size:15px;font-weight:600}.case-card .card-tag{font-size:11px;padding:3px 8px;border-radius:12px;background:var(--orange-light);color:var(--orange);font-weight:500}.case-card .card-tag.green{background:var(--green-light);color:var(--green)}.case-card .card-kv{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;font-size:12px;color:var(--text-2);margin-bottom:14px}.case-card .card-kv .v{color:var(--text);font-weight:500}.case-card .card-fee{font-size:12px;color:var(--text-2);padding:10px 0;border-top:1px solid var(--line-2);margin-bottom:12px}.case-card .card-fee .fee-val{color:var(--orange);font-size:20px;font-weight:700}.case-card .card-actions{display:flex;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:13px;font-weight:500;border:1px solid var(--line);background:#fff;color:var(--text);transition:all .15s}.btn:hover{border-color:#ccc}.btn-primary{background:linear-gradient(90deg,#FF922B,#FF6A00);color:#fff;border:none}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:6px 12px;font-size:12px}.btn-danger{color:var(--red);border-color:#fca5a5}.btn-danger:hover{background:var(--red-light)}.btn-block{width:100%}.empty-state{text-align:center;padding:60px 20px;color:var(--text-2)}.empty-state .ico{font-size:48px;margin-bottom:12px}.empty-state p{font-size:14px}.pagination{margin-top:20px;display:flex;justify-content:center;align-items:center;gap:8px}.pagination span{font-size:13px;color:var(--text-2)}.work-summary{display:flex;gap:16px;margin-bottom:20px}.work-summary .item{flex:1;background:#fff;border-radius:var(--radius-lg);padding:16px 20px;box-shadow:var(--shadow);display:flex;align-items:center;gap:14px}.work-summary .item .ico{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}.work-summary .item .ico.orange{background:var(--orange-light);color:var(--orange)}.work-summary .item .ico.green{background:var(--green-light);color:var(--green)}.work-summary .item .ico.red{background:var(--red-light);color:var(--red)}.work-summary .item .num{font-size:24px;font-weight:700}.work-summary .item .label{font-size:12px;color:var(--text-2)}.work-filter{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.work-filter select{padding:7px 12px;border:1px solid var(--line);border-radius:var(--radius);font-size:13px;background:#fff}.work-table{width:100%;background:#fff;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}.work-table table{width:100%;border-collapse:collapse}.work-table th{text-align:left;padding:12px 16px;font-size:12px;color:var(--text-2);font-weight:500;background:#fafafa;border-bottom:1px solid var(--line-2)}.work-table td{padding:14px 16px;font-size:13px;border-bottom:1px solid var(--line-2)}.work-table tr:last-child td{border-bottom:none}.status-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:500}.status-chip.pending{background:#fff7ed;color:#d97706}.status-chip.done{background:var(--green-light);color:var(--green)}.status-chip.offline,.status-chip.cancel{background:#f3f4f6;color:#6b7280}.status-chip.audit{background:var(--blue-light);color:var(--blue)}.status-chip.rejected{background:var(--red-light);color:var(--red)}.progress-bar{display:flex;gap:2px;height:6px;border-radius:3px;background:#f0f0f0;overflow:hidden;width:120px}.progress-bar .bar{flex:1;border-radius:3px}.progress-bar .bar.filled{background:var(--orange)}.income-tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:2px solid var(--line-2)}.income-tabs .tab{padding:10px 24px;font-size:14px;color:var(--text-2);cursor:pointer;position:relative;font-weight:500}.income-tabs .tab.on{color:var(--orange);font-weight:600}.income-tabs .tab.on:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--orange)}.income-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}.income-card{background:#fff;border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow);position:relative}.income-card .card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.income-card .card-title{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}.income-card .card-title .tag{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500}.income-card .card-title .tag.done{background:var(--green-light);color:var(--green)}.income-card .card-title .tag.offline{background:#f3f4f6;color:#6b7280}.income-card .card-title .tag.audit{background:var(--blue-light);color:var(--blue)}.income-card .card-title .tag.rejected{background:var(--red-light);color:var(--red)}.income-card .card-fee{font-size:22px;font-weight:700;color:var(--orange)}.income-card .card-kv{font-size:12px;color:var(--text-2);margin-top:10px;display:grid;gap:6px}.income-card .card-kv .row{display:flex;justify-content:space-between}.income-card .card-kv .v{color:var(--text);font-weight:500}.income-card .card-actions{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-2);display:flex;gap:8px}.auth-container{max-width:680px}.auth-status-banner{padding:16px 20px;border-radius:var(--radius-lg);margin-bottom:20px;display:flex;align-items:center;gap:12px;font-size:14px}.auth-status-banner.pending{background:var(--orange-light);color:#b45309}.auth-status-banner.approved{background:var(--green-light);color:#15803d}.auth-status-banner.rejected{background:var(--red-light);color:#b91c1c}.auth-status-banner .ico{font-size:24px}.auth-form{background:#fff;border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow)}.auth-form h3{font-size:15px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;color:var(--text-2);margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);font-size:13px;background:#fafafa;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--orange);background:#fff}.form-row{display:flex;gap:14px}.form-row .form-group{flex:1}.upload-area{border:1.5px dashed #ffd9ae;border-radius:var(--radius);padding:20px;text-align:center;background:#FFFAF3;cursor:pointer;transition:all .2s}.upload-area:hover{border-color:var(--orange);background:var(--orange-light)}.upload-area.done{border-style:solid;border-color:#7ecf8f;background:#f2fbf4}.upload-area .ico{font-size:28px;margin-bottom:6px}.upload-area .text{font-size:12px;color:var(--text-2)}.upload-area.done .text{color:#2e9e4f}.auth-info-list{background:#fff;border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow)}.auth-info-list .info-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line-2);font-size:13px}.auth-info-list .info-row:last-child{border-bottom:none}.auth-info-list .info-row .label{color:var(--text-2)}.auth-info-list .info-row .val{font-weight:500}.profile-container{max-width:680px}.profile-card{background:#fff;border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow);margin-bottom:16px}.profile-card h3{font-size:15px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}.profile-card .info-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-2);font-size:13px}.profile-card .info-row:last-child{border-bottom:none}.profile-card .info-row .label{color:var(--text-2)}.profile-card .info-row .val{font-weight:500;display:flex;align-items:center;gap:8px}.profile-card .info-row .val input{padding:6px 10px;border:1px solid var(--line);border-radius:var(--radius);font-size:13px;width:200px}.contracts-list{list-style:none}.contracts-list li{padding:12px 0;border-bottom:1px solid var(--line-2);display:flex;justify-content:space-between;align-items:center}.contracts-list li:last-child{border-bottom:none}.contracts-list li .name{font-size:13px;font-weight:500}.contracts-list li .date{font-size:11px;color:var(--text-2)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:rgba(17,24,39,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:maskFade .22s ease}.modal{background:#fff;border-radius:16px;width:520px;max-height:88vh;overflow:hidden;box-shadow:0 24px 64px #00000038,0 6px 20px #0000001a;position:relative;display:flex;flex-direction:column;animation:modalPop .3s cubic-bezier(.34,1.4,.64,1)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 28px 16px;border-bottom:1px solid var(--line-2);flex:none}.modal-head h2{font-size:17px;font-weight:700;margin:0}.modal-sub{font-size:12px;color:var(--text-2);margin:4px 28px 0;flex:none}.modal-close{width:30px;height:30px;border:none;background:transparent;border-radius:50%;cursor:pointer;font-size:16px;line-height:1;color:var(--text-3);display:flex;align-items:center;justify-content:center;transition:all .15s;flex:none}.modal-close:hover{background:var(--red-light);color:var(--red)}.modal-body{padding:22px 28px;flex:1;overflow-y:auto}.modal-actions{display:flex;gap:10px;justify-content:flex-end;padding:16px 28px;border-top:1px solid var(--line-2);flex:none;background:#fafafa;border-radius:0 0 16px 16px}.modal-actions.center{justify-content:center}.info-box{background:#f8fafc;border:1px solid var(--line-2);padding:14px 16px;border-radius:10px;margin-bottom:18px;font-size:13px;line-height:1.7}.info-box.orange{background:var(--orange-light);border-color:#ffe1c2}.info-box.green{background:var(--green-light);border-color:#bbf7d0}.info-box .row{display:flex;justify-content:space-between;gap:12px}.file-chip{display:inline-flex;align-items:center;gap:6px;background:var(--green-light);border:1px solid #bbf7d0;border-radius:8px;padding:5px 12px;font-size:12px;color:#15803d;max-width:100%}.file-chip .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.file-chip .del{cursor:pointer;color:var(--red);font-weight:700;flex:none}.file-chip .del:hover{opacity:.7}@keyframes maskFade{0%{opacity:0}to{opacity:1}}@keyframes modalPop{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.toast{position:fixed;top:24px;left:50%;transform:translate(-50%) translateY(-80px);background:#333;color:#fff;padding:10px 24px;border-radius:var(--radius);font-size:13px;z-index:9999;transition:transform .3s;pointer-events:none}.toast.show{transform:translate(-50%) translateY(0)}.detail-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);cursor:pointer;margin-bottom:16px}.detail-back:hover{color:var(--orange)}.detail-card{background:#fff;border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow);margin-bottom:16px}.detail-card h3{font-size:15px;font-weight:600;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--line-2)}.detail-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 24px}.detail-kv .item{font-size:13px}.detail-kv .item .k{color:var(--text-2);margin-bottom:2px}.detail-kv .item .v{font-weight:500}.progress-steps{display:flex;align-items:center;gap:0;margin:16px 0}.progress-steps .step{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;position:relative}.progress-steps .step .dot{width:28px;height:28px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;background:#fff;color:var(--text-2);position:relative;z-index:1}.progress-steps .step.done .dot{background:var(--orange);border-color:var(--orange);color:#fff}.progress-steps .step.now .dot{border-color:var(--orange);color:var(--orange)}.progress-steps .step .label{font-size:11px;color:var(--text-2);text-align:center;max-width:80px}.progress-steps .step.done .label,.progress-steps .step.now .label{color:var(--text);font-weight:500}.progress-steps .step:not(:last-child):after{content:"";position:absolute;top:14px;left:calc(50% + 14px);width:calc(100% - 28px);height:2px;background:var(--line)}.progress-steps .step.done:not(:last-child):after{background:var(--orange)}.contract-content{background:#fff;border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow);font-size:13px;line-height:1.8}.contract-content h3{font-size:16px;font-weight:700;margin-bottom:16px;text-align:center}.contract-content p{margin-bottom:10px;text-indent:2em}.contract-content .section{margin:16px 0}.contract-content .section h4{font-size:14px;font-weight:600;margin-bottom:8px}.modal-body .contract-content{background:transparent;box-shadow:none;border-radius:0;padding:0}.sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(17,24,39,.45);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:2000;animation:maskFade .22s ease}.acquire-sheet{position:fixed;bottom:0;left:220px;right:0;background:#fff;border-radius:16px 16px 0 0;box-shadow:0 -12px 40px #0000002e;padding:24px 28px 28px;z-index:2001;max-width:600px;margin:0 auto;animation:sheetUp .3s cubic-bezier(.34,1.3,.64,1)}.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.sheet-head h3{margin:0;font-size:16px;font-weight:700}.feedback-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(17,24,39,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:2001;animation:maskFade .22s ease;display:flex;align-items:center;justify-content:center}.acquire-feedback{background:#fff;border-radius:16px;box-shadow:0 24px 64px #00000040;padding:36px 32px;z-index:2002;max-width:460px;text-align:center;width:90%;animation:modalPop .3s cubic-bezier(.34,1.4,.64,1)}.acquire-feedback .feedback-icon{width:64px;height:64px;border-radius:50%;background:var(--green-light);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:32px;color:var(--green)}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.maxfee-tip-content{line-height:1.8}.maxfee-tip-content p{margin-bottom:12px}.maxfee-tip-content ul{margin-left:16px;margin-top:4px}.text-red{color:var(--red)}.text-green{color:var(--green)}.text-blue{color:var(--blue)}.text-orange{color:var(--orange)}.text-2{color:var(--text-2)}.fs-12{font-size:12px}.fs-11{font-size:11px}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}.mb-20{margin-bottom:20px}.flex-between{display:flex;justify-content:space-between;align-items:center}
