
body{margin:0;padding:10px;background:#f5f7fa;font-family:'Microsoft YaHei',sans-serif;font-size:13px}
.card{background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.05);margin-bottom:15px;padding:15px}
.form-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px;align-items:center}
.form-item{display:flex;align-items:center}
.form-item label{width:65px;text-align:right;margin-right:8px;color:#606266;font-size:13px}
input[type="text"],input[type="date"],input[type="number"]{padding:5px 8px;border:1px solid #dcdfe6;border-radius:4px;outline:none;font-size:13px}
input[type="text"]:focus,input[type="date"]:focus,input[type="number"]:focus{border-color:#409EFF}
input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
input[type="number"]{-moz-appearance:textfield;appearance:textfield}
.table-container{overflow-x:auto}
table{width:100%;border-collapse:collapse;text-align:center}
th,td{border:1px solid #ebeef5;padding:3px 2px;font-size:12px}
th{background:#f5f7fa;color:#333;font-weight:bold;height:32px}
.btn{padding:5px 10px;border-radius:4px;border:none;cursor:pointer;font-size:12px;color:#fff;transition:.2s}
.btn-primary{background:#409EFF}.btn-success{background:#67C23A}.btn-warning{background:#E6A23C}
.btn-danger{background:#F56C6C}.btn-info{background:#909399}.btn-gray{background:#909399}
.btn-purple{background:#9C27B0}.btn-teal{background:#17B0B8}.btn-brown{background:#8B5A2B}
.btn:hover{opacity:.8}
.empty-diff-input{width:50px;text-align:center;font-weight:bold;color:#E6A23C}
.tax-input{width:40px;text-align:center;font-weight:bold;color:#409EFF}
.footer-summary{position:fixed;bottom:0;left:0;right:0;height:60px;background:#fff;box-shadow:0 -2px 15px rgba(0,0,0,.1);display:flex;justify-content:space-between;align-items:center;padding:0 20px;z-index:100}
.totals{display:flex;align-items:center;gap:15px;font-size:14px}
.total-amount{font-size:20px;color:#F56C6C;font-weight:bold}
.deposit-tag{font-size:12px;color:#E6A23C;background:#fdf6ec;padding:3px 6px;border-radius:4px;display:flex;align-items:center;gap:4px;margin-left:8px}
.deposit-tag input[type="checkbox"]{transform:scale(1.1);cursor:pointer}
.fixed-left{position:sticky;left:0;background:#fff;z-index:10;box-shadow:2px 0 5px -2px rgba(0,0,0,.1)}
th.fixed-left{background:#f5f7fa}
.fixed-right{position:sticky;right:0;background:#fff;z-index:10;box-shadow:-2px 0 5px -2px rgba(0,0,0,.1)}
th.fixed-right{background:#f5f7fa}
.summary-card{margin-bottom:80px;border-top:3px solid #409EFF}
.summary-title{font-size:14px;font-weight:bold;color:#409EFF;margin-bottom:10px}
.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:none;justify-content:center;align-items:center;z-index:1000}
.modal{background:#fff;border-radius:8px;width:600px;padding:15px;box-shadow:0 4px 12px rgba(0,0,0,.15);max-height:90vh;overflow-y:auto}
.modal h3{margin-top:0;color:#333;font-size:16px}
.modal textarea{width:100%;height:80px;padding:8px;box-sizing:border-box;border:1px solid #dcdfe6;border-radius:4px;margin-bottom:10px;font-family:monospace;outline:none;resize:vertical;font-size:12px}
.modal textarea:focus{border-color:#409EFF}
.modal-footer{text-align:right;margin-top:10px}
.hint-text{color:#E6A23C;font-size:12px;background:#fdf6ec;padding:8px;border-radius:4px;margin-bottom:10px;line-height:1.5}
.db-item{display:flex;justify-content:space-between;padding:6px;border-bottom:1px solid #ebeef5;font-size:12px}
.db-item:hover{background:#f5f7fa}
.db-item span{cursor:pointer;color:#409EFF}
.mode-switch{display:inline-flex;background:#f5f7fa;border-radius:6px;padding:3px;gap:3px;margin-bottom:10px}
.mode-btn{padding:6px 18px;border:none;border-radius:4px;background:transparent;cursor:pointer;font-size:13px;font-weight:bold;color:#606266;transition:.2s}
.mode-btn:hover{color:#409EFF}
.mode-btn.active{background:#fff;color:#409EFF;box-shadow:0 1px 3px rgba(0,0,0,.1)}
.mode-btn.active.return-active{color:#F56C6C}
.mode-btn.active.sample-active{color:#9C27B0}
.login-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:url('bg-fabric.jpg') center/cover no-repeat;display:flex;justify-content:center;align-items:center;z-index:9999;overflow:hidden;perspective:1400px}
.login-overlay.hidden{display:none!important}
.login-overlay::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(0,0,0,.05) 0%,rgba(0,0,0,.45) 100%);pointer-events:none;z-index:1}
.login-flip-wrap{position:relative;width:340px;height:470px;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.22,1,.36,1);z-index:2}
.login-flip-wrap.flipped{transform:rotateY(180deg)}
.login-box{position:absolute;inset:0;box-sizing:border-box;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:rgba(18,10,5,.20);backdrop-filter:blur(26px) saturate(1.5) brightness(.9);-webkit-backdrop-filter:blur(26px) saturate(1.5) brightness(.9);border:1px solid rgba(255,220,150,.22);border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(0,0,0,.15);padding:26px 24px 12px}
.login-face-back{transform:rotateY(180deg)}
.login-header{text-align:center;margin-bottom:18px;position:relative;z-index:4}
.login-logo{height:52px;border-radius:9px;filter:drop-shadow(0 5px 12px rgba(0,0,0,.5))}
.login-title{font-size:20px;font-weight:bold;color:#ffe9c9;letter-spacing:6px;margin-top:8px;text-shadow:0 2px 10px rgba(0,0,0,.55),0 0 22px rgba(255,200,100,.28)}
.login-field{margin-bottom:10px;position:relative;z-index:4}
.login-field label{display:block;font-size:12px;color:rgba(255,235,210,.85);margin-bottom:4px;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.login-field input{width:100%;box-sizing:border-box;padding:7px 10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,220,160,.24);border-radius:8px;font-size:13px;color:#fff5e6;outline:none;transition:.25s}
.login-field input::placeholder{color:rgba(255,235,210,.38)}
.login-field input:focus{border-color:rgba(255,210,130,.7);background:rgba(255,255,255,.12);box-shadow:0 0 0 3px rgba(255,210,130,.13)}
.login-remember{display:flex;align-items:center;gap:6px;font-size:12px;color:rgba(255,235,210,.85);cursor:pointer;margin-bottom:10px;user-select:none;position:relative;z-index:4;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.login-remember input[type="checkbox"]{transform:scale(.9);accent-color:#E6A23C;cursor:pointer}
.login-error{color:#ff9b8a;font-size:11px;min-height:14px;margin-bottom:6px;text-align:center;position:relative;z-index:4;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.login-btn{width:100%;padding:8px;background:linear-gradient(135deg,rgba(243,156,18,.92),rgba(230,126,34,.92));color:#fff;border:1px solid rgba(255,220,160,.35);border-radius:8px;font-size:13px;font-weight:bold;letter-spacing:3px;cursor:pointer;transition:.25s;position:relative;z-index:4;box-shadow:0 5px 16px rgba(230,126,34,.32)}
.login-btn:hover{opacity:.95;transform:translateY(-1px);box-shadow:0 8px 22px rgba(230,126,34,.48)}
.login-footer{text-align:center;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,220,160,.14);position:relative;z-index:4}
.login-footer span{font-size:11px;color:rgba(255,235,210,.72);cursor:pointer;text-shadow:0 1px 3px rgba(0,0,0,.5)}
.login-footer span:hover{color:#ffd88a}
.bg-change-btn{position:absolute;right:20px;bottom:20px;width:42px;height:42px;border-radius:50%;background:rgba(0,0,0,.35);color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.25);box-shadow:0 4px 16px rgba(0,0,0,.35);transition:.25s;z-index:100;user-select:none}
.bg-change-btn:hover{background:rgba(230,126,34,.7);transform:scale(1.1);box-shadow:0 6px 22px rgba(230,126,34,.5)}
.top-logo-bar{position:relative;background:linear-gradient(180deg,#fff 0%,#fffdf6 100%);border-radius:8px;box-shadow:0 2px 12px rgba(230,126,34,.08),inset 0 0 0 1px rgba(255,215,0,.18);padding:22px 18px;margin-bottom:15px;text-align:center;overflow:hidden;cursor:pointer}
.top-logo-bar::before{content:'';position:absolute;left:50%;top:50%;width:60px;height:60px;margin-left:-30px;margin-top:-30px;border-radius:50%;background:radial-gradient(circle,rgba(255,250,210,.95) 0%,rgba(255,215,0,.6) 30%,rgba(255,180,50,.25) 60%,transparent 80%);opacity:0;transform:scale(0);pointer-events:none;animation:centerRipple 300s ease-out infinite;z-index:2}
@keyframes centerRipple{0%,1.55%{opacity:0;transform:scale(0)}1.7%{opacity:1;transform:scale(2)}1.85%{opacity:.7;transform:scale(4)}2%{opacity:0;transform:scale(7)}100%{opacity:0;transform:scale(0)}}
.top-logo-bar::after{content:'';position:absolute;top:-30%;left:-60%;width:32%;height:160%;background:linear-gradient(100deg,transparent 0%,rgba(255,240,150,.08) 25%,rgba(255,255,240,.98) 50%,rgba(255,240,150,.08) 75%,transparent 100%);transform:skewX(-20deg);filter:blur(1.5px);opacity:0;pointer-events:none;animation:lightSweep 300s ease-in-out infinite;z-index:5}
@keyframes lightSweep{0%,2.1%{left:-60%;opacity:0}2.25%{opacity:1}2.6%{left:130%;opacity:.9}2.75%{left:130%;opacity:0}100%{left:-60%;opacity:0}}
.drop-item,.drop-char{display:inline-block;vertical-align:middle;position:relative;z-index:3;animation-duration:300s;animation-iteration-count:infinite;animation-fill-mode:both;animation-timing-function:cubic-bezier(.22,1,.36,1);transform-origin:center center}
.drop-item{height:80px;border-radius:8px;margin-right:22px;animation-name:logoFly;filter:drop-shadow(0 4px 12px rgba(230,126,34,.25))}
@keyframes logoFly{0%{opacity:0;transform:translate(-420px,-220px) rotate(-70deg) scale(.2);filter:blur(14px) drop-shadow(0 0 40px rgba(255,220,80,1)) drop-shadow(0 0 80px rgba(255,180,0,.6))}.35%{opacity:.55;transform:translate(-300px,-140px) rotate(-46deg) scale(.55);filter:blur(7px) drop-shadow(0 0 28px rgba(255,220,80,.85)) drop-shadow(0 0 50px rgba(255,180,0,.4))}.85%{opacity:1;transform:translate(-160px,-60px) rotate(-22deg) scale(.85);filter:blur(2px) drop-shadow(0 0 16px rgba(255,215,0,.6))}1.25%{transform:translate(-15px,-6px) rotate(-3deg) scale(1.08);filter:blur(0) drop-shadow(0 0 22px rgba(255,230,80,1)) drop-shadow(0 0 40px rgba(255,200,0,.6))}1.45%{transform:translate(10px,5px) rotate(2deg) scale(.94);filter:drop-shadow(0 0 14px rgba(255,215,0,.7))}1.6%{transform:translate(-4px,-2px) rotate(-.5deg) scale(1.04);filter:drop-shadow(0 0 8px rgba(255,215,0,.4))}1.75%,100%{opacity:1;transform:translate(0,0) rotate(0deg) scale(1);filter:drop-shadow(0 4px 12px rgba(230,126,34,.25))}}
.drop-char{font-size:42px;font-weight:bold;color:#E67E22;font-family:'Microsoft YaHei',sans-serif;margin:0 7px;text-shadow:0 2px 6px rgba(230,126,34,.22);animation-name:charFly;animation-delay:var(--d,0s)}
@keyframes charFly{0%{opacity:0;transform:translate(var(--sx,-200px),var(--sy,-150px)) rotate(var(--rot,-90deg)) scale(.15);filter:blur(12px) drop-shadow(0 0 30px rgba(255,220,80,1)) drop-shadow(0 0 60px rgba(255,180,0,.5))}.35%{opacity:.6;transform:translate(calc(var(--sx,-200px)*.72),calc(var(--sy,-150px)*.72)) rotate(calc(var(--rot,-90deg)*.7)) scale(.5);filter:blur(6px) drop-shadow(0 0 20px rgba(255,220,80,.8)) drop-shadow(0 0 40px rgba(255,180,0,.35))}.85%{opacity:1;transform:translate(calc(var(--sx,-200px)*.3),calc(var(--sy,-150px)*.3)) rotate(calc(var(--rot,-90deg)*.4)) scale(.85);filter:blur(2px) drop-shadow(0 0 12px rgba(255,215,0,.5))}1.25%{transform:translate(calc(var(--sx,-200px)*-.03),calc(var(--sy,-150px)*-.03)) rotate(calc(var(--rot,-90deg)*-.04)) scale(1.15);filter:blur(0) drop-shadow(0 0 24px rgba(255,235,90,1)) drop-shadow(0 0 40px rgba(255,200,0,.6))}1.45%{transform:translate(calc(var(--sx,-200px)*.015),calc(var(--sy,-150px)*.015)) rotate(calc(var(--rot,-90deg)*.02)) scale(.94);filter:drop-shadow(0 0 12px rgba(255,215,0,.6))}1.6%{transform:translate(0,0) rotate(0deg) scale(1.05);filter:drop-shadow(0 0 6px rgba(255,215,0,.35))}1.75%,100%{opacity:1;transform:translate(0,0) rotate(0deg) scale(1);filter:none}}
.tabs{display:flex;border-bottom:2px solid #ebeef5;margin-bottom:15px}
.tab-item{padding:8px 15px;font-size:14px;font-weight:bold;color:#606266;cursor:pointer;border-bottom:3px solid transparent;transition:.2s}
.tab-item:hover{color:#409EFF}
.tab-item.active{color:#409EFF;border-bottom-color:#409EFF}
.history-table{width:100%;border-collapse:collapse;text-align:center}
.history-table th,.history-table td{border:1px solid #ebeef5;padding:8px;font-size:12px}
.history-table th{background:#f5f7fa;color:#333;cursor:pointer}
.history-table th:hover{background:#e6f7ff;color:#409EFF}
.history-table th.sortable{position:relative;padding-right:22px;cursor:pointer}
.history-table th.sortable::before,.history-table th.sortable::after{content:'';position:absolute;right:8px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent}
.history-table th.sortable::before{top:50%;margin-top:-7px;border-bottom:5px solid #c0c4cc}
.history-table th.sortable::after{top:50%;margin-top:1px;border-top:5px solid #c0c4cc}
.history-table th.sortable.sort-asc::before{border-bottom-color:#409EFF}
.history-table th.sortable.sort-desc::after{border-top-color:#409EFF}
.status-badge{padding:2px 6px;border-radius:4px;font-size:11px;font-weight:bold}
.status-unpaid{background:#fef0f0;color:#f56c6c}
.status-partial{background:#fdf6ec;color:#e6a23c}
.status-paid{background:#f0f9eb;color:#67c23a}
.status-return{background:#f4f4f5;color:#909399}
.status-return-red{background:#fef0f0;color:#f56c6c}
.qr-upload-item{flex:1;text-align:center;border:2px dashed #dcdfe6;border-radius:8px;padding:15px;cursor:pointer;transition:.2s}
.qr-preview{max-width:120px;max-height:120px;margin-top:10px;border-radius:4px}
.chart-container{display:flex;align-items:flex-end;height:200px;gap:15px;padding:15px;border-bottom:2px solid #ebeef5;overflow-x:auto}
.chart-bar-wrapper{display:flex;flex-direction:column;align-items:center;min-width:50px}
.chart-bar{width:35px;background:#409EFF;border-radius:4px 4px 0 0;transition:height .5s;position:relative}
.chart-bar-profit{width:35px;background:#67C23A;border-radius:4px 4px 0 0;margin-top:5px;transition:height .5s}
.chart-label{font-size:11px;color:#606266;margin-top:5px}
.chart-value{font-size:11px;color:#409EFF;font-weight:bold;margin-bottom:5px}
.ledger-search-box{display:flex;gap:10px;margin-bottom:15px}
.ledger-search-box input{flex:1;padding:8px;font-size:14px}
.filter-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px;background:#f8f9fa;border-radius:6px;margin-bottom:10px;border:1px solid #ebeef5}
.filter-bar label{font-size:12px;color:#606266;display:flex;align-items:center;gap:4px}
.filter-bar input[type="text"],.filter-bar input[type="date"]{padding:5px 8px;font-size:12px}
.filter-bar .btn{font-size:11px;padding:4px 8px}
.filter-bar .divider{width:1px;height:20px;background:#dcdfe6}
.filter-bar select{padding:5px 6px;font-size:12px;border:1px solid #dcdfe6;border-radius:4px;background:#fff;outline:none}
#printPreviewModal,#statementPreviewModal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);display:none;justify-content:center;align-items:flex-start;z-index:2000;padding:10px;overflow-y:auto}
.print-container{background:#fff;width:210mm;padding:15mm;box-shadow:0 4px 12px rgba(0,0,0,.3);box-sizing:border-box;position:relative;margin:auto}
.print-top-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}
.print-qr-box{width:80px;text-align:center}
.print-qr-box img{width:60px;height:60px;object-fit:contain;border:1px solid #ecf0f1;padding:2px;border-radius:4px}
.print-qr-box p{margin:5px 0 0 0;font-size:11px;color:#7f8c8d}
.print-company-header{flex:1;text-align:center;margin-bottom:0}
.print-company-name{font-size:24px;font-weight:bold;color:#2c3e50;margin-bottom:5px;letter-spacing:2px}
.print-company-sub{font-size:12px;color:#7f8c8d;margin-bottom:10px}
.print-main-title{text-align:center;font-size:18px;font-weight:bold;margin-bottom:20px;border-bottom:2px solid #3498db;padding-bottom:8px;display:inline-block;width:100%}
.print-header{display:flex;justify-content:space-between;margin-bottom:10px;font-size:13px;background:#f8f9fa;padding:8px;border-radius:4px}
.print-header div{width:33%;color:#333}
.print-header span{font-weight:bold;color:#000}
.print-section-title{font-size:14px;font-weight:bold;color:#2c3e50;margin-bottom:6px;margin-top:12px;border-left:4px solid #3498db;padding-left:6px}
.print-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:8px}
.print-table th,.print-table td{border:1px solid #bdc3c7;padding:4px 3px;text-align:center;color:#333;vertical-align:middle}
.print-table th{background:#ecf0f1;color:#2c3e50;font-weight:bold}
.print-table tbody tr:nth-child(even){background:#f9fbfd}
.print-footer-info{display:flex;justify-content:space-between;font-size:14px;margin-bottom:8px;font-weight:bold;margin-top:8px;background:#fdf2e9;padding:10px;border-radius:6px;border:1px dashed #e67e22}
.print-footer-info div{color:#d35400}
.print-footer-info span{color:#c0392b;font-size:16px}
.print-signatures{display:flex;justify-content:space-between;font-size:13px;margin-top:30px;color:#333}
.print-signatures div{width:30%;text-align:left;border-bottom:1px solid #333;padding-bottom:4px}
.paid-stamp{position:absolute;right:60px;top:173px;transform:rotate(-25deg);border:4px double #e74c3c;border-radius:50%;width:110px;height:110px;display:flex;align-items:center;justify-content:center;color:#e74c3c;font-size:22px;font-weight:bold;letter-spacing:3px;opacity:.78;pointer-events:none;z-index:10;font-family:'Microsoft YaHei',sans-serif}
.paid-stamp-inner{text-align:center;line-height:1.1}
.paid-stamp-inner small{display:block;font-size:10px;letter-spacing:1px;margin-top:3px;font-weight:normal}
.paid-stamp.partial{border-color:#E6A23C;color:#E6A23C;font-size:16px;letter-spacing:2px}
.stars-area{position:relative;height:96px;margin-top:4px;margin-bottom:4px;overflow:visible}
.yuanbao{position:absolute;background-image:url('yuanbao.png');background-size:contain;background-repeat:no-repeat;background-position:center;mix-blend-mode:multiply;pointer-events:none;animation:yuanbaoShine 1.8s ease-in-out infinite}
.yuanbao.yb1{left:4%;top:-9px;width:93px;height:93px;animation-delay:0s}
.yuanbao.yb2{left:20%;top:53px;width:67px;height:67px;animation-delay:.30s}
.yuanbao.yb3{left:36%;top:0px;width:88px;height:88px;animation-delay:.60s}
.yuanbao.yb4{left:58%;top:36px;width:60px;height:60px;animation-delay:.90s}
.yuanbao.yb5{left:71%;top:-8px;width:96px;height:96px;animation-delay:1.20s}
@keyframes yuanbaoShine{0%,100%{opacity:.35;transform:scale(.85) translateY(2px);filter:brightness(.95)}50%{opacity:1;transform:scale(1.15) translateY(-2px);filter:brightness(1.25) drop-shadow(0 0 9px rgba(255,200,40,.9))}}
.print-disclaimer{margin-top:8px;font-size:11px;color:#e74c3c;border-top:1px dashed #ecf0f1;padding-top:6px;line-height:1.5;text-align:left}
.cost-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.cost-row label{font-weight:bold;font-size:14px}
.cost-row input{width:150px;padding:8px;font-size:16px;font-weight:bold;color:#E6A23C;text-align:right}
.cost-profit{font-size:16px;font-weight:bold;color:#67C23A}
.unit-suggest-box{position:absolute;display:none;background:#fff;border:1px solid #dcdfe6;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15);max-height:240px;overflow-y:auto;z-index:3000;font-size:12px;min-width:80px}
.unit-suggest-item{padding:6px 14px;cursor:pointer;border-bottom:1px solid #f5f7fa;text-align:center;color:#333}
.unit-suggest-item:last-child{border-bottom:none}
.unit-suggest-item:hover{background:#ecf5ff;color:#409EFF}
.product-suggest-box{position:absolute;display:none;background:#fff;border:1px solid #dcdfe6;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.15);max-height:240px;overflow-y:auto;z-index:3000;font-size:12px;min-width:200px}
.product-suggest-item{padding:6px 10px;cursor:pointer;border-bottom:1px solid #f5f7fa}
.product-suggest-item:hover{background:#ecf5ff}
.history-checkbox{width:16px;height:16px;cursor:pointer;}
.db-section-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:bold;color:#333;padding-bottom:10px;border-bottom:1px solid #ebeef5}
.db-section-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;color:#fff;border-radius:6px;font-size:14px}
.db-section-hint{font-size:11px;font-weight:normal;color:#909399;margin-left:auto}
.db-form-row{display:flex;align-items:center;gap:10px}
.db-form-row label{width:90px;font-size:12px;color:#606266;text-align:right;flex-shrink:0}
.db-form-row input{flex:1}
.print-action-bar{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin-top:16px;padding:10px;background:#f8f9fa;border-radius:8px}
.print-action-bar .btn{font-size:13px;padding:8px 14px}
.print-debt-info{display:flex;justify-content:space-around;margin-top:8px;margin-bottom:8px;padding:8px 12px;background:#fff8e6;border:1px dashed #e6a23c;border-radius:6px;font-weight:bold;font-size:13px;flex-wrap:wrap;gap:10px}
.print-debt-info .lbl{color:#909399;margin-right:4px;font-weight:normal}
.print-debt-info .val-prev{color:#E6A23C;font-size:15px}
.print-debt-info .val-curr{color:#F56C6C;font-size:15px}
.print-debt-info .val-total{color:#c0392b;font-size:16px}
.todo-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:#fff;border:1px solid #ebeef5;border-radius:8px;transition:.18s}
.todo-item:hover{box-shadow:0 3px 12px rgba(64,158,255,.12);border-color:#c6e2ff}
.todo-item.overdue{border-color:#fbc4c4;background:#fffafa}
.todo-item.done{background:#fafbfc;opacity:.85}
.todo-checkbox{width:20px;height:20px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color:#67C23A}
.todo-body{flex:1;min-width:0}
.todo-title{font-size:14px;font-weight:bold;color:#333;word-break:break-word;line-height:1.5}
.todo-item.done .todo-title{text-decoration:line-through;color:#909399}
.todo-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:6px}
.todo-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:bold;line-height:1.6;white-space:nowrap}
.todo-badge-urgent{background:#fef0f0;color:#F56C6C}
.todo-badge-important{background:#fdf6ec;color:#E6A23C}
.todo-badge-normal{background:#f4f4f5;color:#909399}
.todo-badge-cat{background:#ecf5ff;color:#409EFF}
.todo-badge-cust{background:#f3e5f5;color:#9C27B0;cursor:pointer}
.todo-badge-due{background:#ecf5ff;color:#409EFF}
.todo-badge-overdue{background:#fef0f0;color:#F56C6C}
.todo-badge-remind{background:#e8f5e9;color:#43a047}
.todo-badge-done{background:#f0f9eb;color:#67C23A}
.todo-content{font-size:12px;color:#606266;margin-top:6px;white-space:pre-wrap;line-height:1.6;word-break:break-word}
.todo-time{font-size:11px;color:#c0c4cc;margin-top:8px}
.todo-actions{display:flex;gap:6px;flex-shrink:0;align-items:flex-start}
.todo-empty{text-align:center;color:#909399;padding:60px 20px;font-size:13px;background:#fafbfc;border-radius:8px;border:1px dashed #e4e7ed}
.todo-empty .empty-icon{font-size:38px;display:block;margin-bottom:12px;opacity:.5}
.todo-toast{background:#fff;border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.18);padding:12px 14px;border-left:4px solid #409EFF;pointer-events:auto;animation:todoToastIn .35s cubic-bezier(.22,1,.36,1)}
@keyframes todoToastIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
.todo-toast.urgent{border-left-color:#F56C6C}
.todo-toast-title{font-size:14px;font-weight:bold;color:#333;margin-bottom:4px;word-break:break-word}
.todo-toast-content{font-size:12px;color:#606266;line-height:1.5;word-break:break-word;margin-bottom:6px}
.todo-toast-footer{font-size:11px;color:#909399;display:flex;justify-content:space-between;align-items:center}
.todo-toast-close{background:transparent;border:none;cursor:pointer;color:#909399;font-size:16px;line-height:1;padding:0 4px}
.meter-cell-input::-webkit-outer-spin-button,.meter-cell-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.meter-cell-input{-moz-appearance:textfield;appearance:textfield}
@media (max-width: 900px){
    .footer-summary{height:auto;min-height:60px;flex-direction:column;align-items:stretch;padding:8px 12px;gap:8px}
    .footer-summary > div:first-child{display:none}
    .totals{flex-wrap:wrap;justify-content:center;gap:8px;font-size:12px}
    .totals > span{font-size:12px}
    .total-amount{font-size:15px}
    .totals button{flex:1;min-width:88px;padding:9px 10px !important;font-size:13px !important}
    .summary-card{margin-bottom:180px}
}
.oplog-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:bold;white-space:nowrap}
.oplog-badge-add{background:#f0f9eb;color:#67c23a}
.oplog-badge-edit{background:#fdf6ec;color:#e6a23c}
.oplog-badge-del{background:#fef0f0;color:#f56c6c}
.oplog-badge-pay{background:#ecf5ff;color:#409EFF}
.oplog-badge-refund{background:#fef0f0;color:#e74c3c}
.oplog-badge-other{background:#f4f4f5;color:#909399}
@media print{
    body *{visibility:hidden}
    body.print-detail #printPreviewModal,body.print-detail #printPreviewModal *,body.print-statement #statementPreviewModal,body.print-statement #statementPreviewModal *{visibility:visible}
    #printPreviewModal,#statementPreviewModal{position:absolute;left:0;top:0;background:#fff;padding:0;display:none!important}
    body.print-detail #printPreviewModal{display:block!important}
    body.print-statement #statementPreviewModal{display:block!important}
    .print-container{box-shadow:none;margin:0;padding:8mm}
    .no-print{display:none!important}
    *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
    .print-table tr{page-break-inside:avoid;page-break-after:auto}
}

