html,body,#app{height:100%;margin:0}body{font:14px/1.5 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:#f0f2f5;color:#303133}*{box-sizing:border-box}.shell{max-width:1000px;margin:0 auto;padding:8px}.card{background:#fff;border:1px solid #e4e7ed;border-radius:8px;padding:16px;margin-bottom:16px;box-shadow:0 1px 2px #0000000a}h2{margin:0 0 14px}label{display:block;font-size:12px;color:#909399;margin:8px 0 3px}input,select,textarea{width:100%;background:#fff;border:1px solid #dcdfe6;color:#303133;border-radius:6px;padding:8px 10px;font:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:#409eff}button{background:#409eff;color:#fff;border:none;border-radius:6px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer}button.ghost{background:#fff;border:1px solid #dcdfe6;color:#303133}button:hover{filter:brightness(1.05)}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:7px 9px;border-bottom:1px solid #ebeef5;white-space:nowrap}th{color:#909399;font-size:11px;text-transform:uppercase}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1;min-width:120px}.badge{padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600}.b-granted{background:#67c23a26;color:#67c23a}.b-pending{background:#e6a23c26;color:#e6a23c}.b-other{background:#409eff26;color:#409eff}.err{color:#f56c6c;font-size:13px;margin-top:8px}.ok{color:#67c23a;font-size:13px;margin-top:8px}.mut{color:#909399}
