*{margin:0;padding:0;box-sizing:border-box;font-family:Microsoft YaHei,system-ui;-webkit-tap-highlight-color:transparent}
body{background:#F5F7FA;color:#1D2129;font-size:13px;min-height:100vh;display:flex;justify-content:center;padding:10px 0}
.wrap-container{max-width:432px;width:100%}
.card{background:#fff;border-radius:4px;padding:12px 12px 0 12px;width:100%}
.sum-card{background:#F0F7FF;border-radius:4px;margin-top:8px}
.sum-title{font-size:18px;font-weight:bold;padding:12px 12px 4px}
.list-wrap{padding:0 12px 12px;font-size:16px;display:flex;flex-direction:column;gap:6px}
.form-row-five{display:flex;gap:10px;margin-bottom:8px;align-items:center}
.form-row-five .hide-col{display:none}
.form-row-four-lock{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:8px}
.form-row-three{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.form-item{display:flex;flex-direction:column;gap:2px}
label{font-size:14px;white-space:nowrap}
input{width:100%;height:26px;padding:0 7px;border:1px solid #E5E6EB;border-radius:3px;outline:none;font-size:14px}
input.req{background:#fff9cc}
input:focus{border-color:#165DFF}
.star{color:#f53f3f;margin-left:4px}
.lock{width:36px;height:18px;border-radius:9px;background:#ccc;position:relative;cursor:pointer;transition:.2s;margin:4px 0}
.lock::after{content:"";position:absolute;width:14px;height:14px;background:#fff;border-radius:50%;top:2px;left:20px;transition:.2s}
.lock.on{background:#165DFF}
.lock.on::after{left:2px}
input[disabled]{background:#F2F3F5;color:#86909C;cursor:not-allowed}
input[type="range"]{width:100%;margin:8px 0;height:14px;-webkit-appearance:none;background:#e5e6eb;border-radius:99px;outline:none}
input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#165DFF;cursor:pointer}
.slider-val{text-align:center;font-weight:bold;color:#165DFF;font-size:14px}
.pattern-wrap{border:1px solid #E5E6EB;border-radius:4px;padding:4px;margin-top:8px}
.pattern-block{padding:6px;background:#FAFAFA;border-radius:3px;margin-bottom:6px}
.pattern-block:last-child{margin-bottom:0}
.pattern-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px}
.pattern-header>span{flex:1;line-height:1.4;font-size:14px}
.pattern-header>div{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}
.btn{border:none;padding:3px 5px;border-radius:3px;cursor:pointer;font-size:12px;color:#fff}
.btn-add{background:#00B42A}
.btn-del{background:#F53F3F}
.btn-tech{background:#FFCC00;color:#333}
.line-item{display:flex;justify-content:space-between;height:32px;align-items:center}
.orange{color:#FF7D00}
.summary{display:flex;flex-direction:column;gap:6px;padding-top:8px}
.cost-row{display:flex;justify-content:space-between;height:22px;align-items:center;font-size:16px}
.total{font-weight:bold;font-size:18px;color:#F53F3F}
.big{font-size:22px;color:#165DFF;font-weight:600}
.profit{font-size:19px;font-weight:bold;color:#00B42A;height:36px;display:flex;align-items:center;justify-content:space-between;gap:6px}
.profit-content{display:flex;align-items:center;gap:6px}
.mode-btn{padding:4px 12px;font-size:12px;background:#165DFF;color:#fff;border:none;border-radius:4px;cursor:pointer}
.rate{font-size:15px;color:#165DFF}
.desc{font-size:11px;color:#F53F3F;text-align:center;line-height:1.4;margin-top:4px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:flex-start;justify-content:center;z-index:999;padding-top:80px}
.modal.show{display:flex}
.modal-box{background:#fff;border-radius:12px;padding:12px;box-shadow:0 8px 30px rgba(0,0,0,.15);width:80%;max-width:300px}
.modal-title{font-size:16px;font-weight:600;margin-bottom:16px;text-align:center}
.radio-item{display:flex;align-items:center;gap:10px;margin-bottom:4px;font-size:14px;padding:10px 12px;border:1px solid #E5E6EB;border-radius:8px;cursor:pointer}
.radio-item:hover{border-color:#B4D3FF;background:#F7FAFF}
.radio-item.active{border-color:#165DFF;background:#F0F7FF}
.radio-item label{flex:none;font-weight:bold;cursor:pointer}
.modal-btns{display:flex;gap:12px;margin-top:18px;justify-content:center}
.modal-btn{padding:7px 20px;border-radius:8px;cursor:pointer;font-size:14px;border:none}
.modal-confirm{background:#165DFF;color:#fff}
.modal-cancel{border:1px solid #DCDFE6;background:#fff}