*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;font-size:14px;color:#333;background:#f5f5f5;-webkit-tap-highlight-color:transparent}#app{min-height:100vh}.page{min-height:100vh;background:#f5f5f5;padding-bottom:20px}.nav-bar{position:sticky;top:0;z-index:100;background:#fff;display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid #eee;font-size:16px;font-weight:600}.nav-bar .back-btn{margin-right:12px;font-size:20px;cursor:pointer;color:#576b95;background:none;border:none;padding:0}.nav-bar .title{flex:1}.nav-bar .nav-action{color:#576b95;font-size:14px;font-weight:400;cursor:pointer;background:none;border:none}.card{background:#fff;border-radius:8px;margin:12px;padding:16px;box-shadow:0 1px 4px #0000000f}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:opacity .2s}.btn:active{opacity:.7}.btn-primary{background:#1989fa;color:#fff}.btn-success{background:#07c160;color:#fff}.btn-danger{background:#ee0a24;color:#fff}.btn-default{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-block{display:flex;width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.field{display:flex;align-items:center;padding:12px 0;border-bottom:1px solid #f0f0f0}.field label{width:90px;flex-shrink:0;color:#666;font-size:14px}.field input,.field textarea,.field select{flex:1;border:none;outline:none;font-size:14px;color:#333;background:transparent}.field textarea{resize:none;min-height:60px}.toast-wrap{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000bf;color:#fff;border-radius:8px;padding:10px 20px;font-size:14px;z-index:9999;pointer-events:none;max-width:240px;text-align:center}.loading-wrap{display:flex;align-items:center;justify-content:center;padding:40px;color:#999;font-size:14px}.spinner{width:20px;height:20px;border:2px solid #ddd;border-top-color:#1989fa;border-radius:50%;animation:spin .8s linear infinite;margin-right:8px}@keyframes spin{to{transform:rotate(360deg)}}.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px}.empty{text-align:center;padding:60px 20px;color:#999;font-size:14px}.tab-bar{display:flex;background:#fff;border-bottom:1px solid #eee}.tab-bar .tab-item{flex:1;text-align:center;padding:12px 0;font-size:14px;color:#666;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.tab-bar .tab-item.active{color:#1989fa;border-bottom-color:#1989fa}.divider{height:1px;background:#f0f0f0;margin:0 -16px}.footer-btns{padding:12px 16px;display:flex;gap:10px}.footer-btns .btn{flex:1}
